• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32f030F4p6 getchar 怎么不能用

FEItwo 2019-03-29 浏览量:910
int fputc(int cFILE *stream)
{
        USART1->TDR=c;
        while(!(USART1->ISR & (1<<7))){};
                return c;
}
int fgetc(FILE *stream)
{
         while(!(USART1->ISR & (1<<5))){};
                return USART1->RDR;
}
不知道为啥getchar不能用 printf运行没问题  求指点
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 如果那个串口一直没有收到数据,那这个fgetc就会卡在那个while那里,也就无法运行

    fputc是向串口写入数据的,只要串口能发送,就会返回成功

    因此还是要查一下串口本身的收发是否正常

    • 发布于 2019-03-31
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:1
  • 接收函数只是返回一个接收数据流长度,还有就是要把tx和rx的stream缓存分开,并且需要开启串口中断
    • 发布于2019-03-29
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32f030F4p6 getchar 怎么不能用