怎么用单片机确定串口接收数据的时间间隔?

 我来答
百度网友ca331e8a
推荐于2019-09-05 · TA获得超过1.4万个赞
知道小有建树答主
回答量:243
采纳率:82%
帮助的人:8.2万
展开全部

肯定是先要设置定时器,但是定时器也不能设置那么长的时间间隔,可以设置100mS,然后再定时器中断里用一个变量计数,计10次就是1S咯,一个单元最大值为255,也就是最长可以255*100mS,如果要更长,就用两个单元计数,最长就变成255*255*100mS,依次类推就行了。

关于换行的问题,换行符也是一个ASII码,找到对应的ASII码,然后发送就行了。

1. 什么是波特率

不管是什么单片机,在使用串口通信的时候,有一个非常重要的参数:波特率。什么是波特率:波特率就是每秒传送的字节数。双方在传输数据的过程中,波特率一致,这是通讯成功的基本保障。下面以STM32单片机为例,讲解一下串口波特率的计算方法。

STM32波特率相关的寄存器

STM32单片机设置波特率的寄存器只有一个:USART_BRR寄存器,

波特率寄存器

该寄存器的有效位数为16位,前4位用于存放小数部分,后12位用于存放整数部分。将波特率算出来后,数值填入这个波特率就可以了。

必须用中断的方式接收,每接收一个字节中断一次,然后统计接收字节数,达到要求的数量后再进行处理。对于不等长的数据帧,可根据第一个字节(这种通信方式都有一个字节的特征字)或特征字来区分,然后确定接收的字节数。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式