关于STM32串口通信时数据读取的一些疑问
答案:1 悬赏:70 手机版
解决时间 2021-03-25 18:22
- 提问者网友:了了无期
- 2021-03-25 02:59
关于STM32串口通信时数据读取的一些疑问
最佳答案
- 五星知识达人网友:冷風如刀
- 2021-03-25 04:30
1、是的。芯片硬件自己完成。
2、是的。是的,USART硬件会根据你的设置(波特率等),将数据一位一位发出去。
3、
DR读取后就会清零RXEN。
4、是的,只能读一个字符,因为数据接收寄存器只有一个。不能。只能一个一个接收的,硬件决定了,如果你不读,下一个数据会覆盖上一个数据。
5、硬件上没有,偏要说有的话就是数据寄存器。
追问1、我不可以定义一个数组 u8 USART_RX_BUF[USART_REC_LEN]; 通过循环读取字符来接收整个数组吗?
2、比如说,有一个传感器返回数字信号,现在需要把数据发送到串口助手显示(没有接收,只是发送数据),我是需不需要用中断?还是直接用 printf() 函数就可以? fputc()定义如下:
追答1、其实就是这样实现的,所谓的“缓冲区”就是指的程序中定义的数组存储单元。
2、不需要,配置好串口后,直接fputc()就能发数据。
2、是的。是的,USART硬件会根据你的设置(波特率等),将数据一位一位发出去。
3、
DR读取后就会清零RXEN。
4、是的,只能读一个字符,因为数据接收寄存器只有一个。不能。只能一个一个接收的,硬件决定了,如果你不读,下一个数据会覆盖上一个数据。
5、硬件上没有,偏要说有的话就是数据寄存器。
追问1、我不可以定义一个数组 u8 USART_RX_BUF[USART_REC_LEN]; 通过循环读取字符来接收整个数组吗?
2、比如说,有一个传感器返回数字信号,现在需要把数据发送到串口助手显示(没有接收,只是发送数据),我是需不需要用中断?还是直接用 printf() 函数就可以? fputc()定义如下:
追答1、其实就是这样实现的,所谓的“缓冲区”就是指的程序中定义的数组存储单元。
2、不需要,配置好串口后,直接fputc()就能发数据。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯