关于RS232串口发送数据的问题,前面的起始位和后面的校验位如何在中断里面加进去,是芯

2020-02-04 09:33发布

这几天在看研究串口,一般用串口设置好寄存器,对于接收只是去读接收中断发过来的数据就好,发送呢,一般性的办法就是检测 TI 标志位~~~但是今天忽然觉得觉得有一个事情没有深究过,假如两个单片机进行通讯,希望在通讯的时候加进去校验位,那么这个校验位由谁来发送呢?程序内编写还是硬件设置好了会自动在数据后面加上,另外要是由人编写程序发送,怎么加进去呢,写在哪里,写在检测 TI 标志位的前面吗?那软件什么时候会置位 TI 电平呢,发送完数据后,然后加一个校验,再然后停止位,最后置位 TI吗? 那我接收呢,RI置位后进入中断,理论上应该是是把所有的都收完了以后进入的吧,那这个校验位放在哪里了呢,放在接收寄存器里面了吗?那这样岂不是我的数据丢失了,不完整了,真的不是很清楚,查了些资料好像说的也是云里雾里,希望各位大虾 指点指点,在此先谢过各位!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
luying2778
1楼-- · 2020-02-04 13:15
你用的是51吗?
好像有一个寄存器里有校验位的设定
一般我们都设定成不用校验位的
而且如果我没有记错的话
寄存器里还可以设定数据发送的位数,不一定是8位的哈
xerox
2楼-- · 2020-02-04 17:02
 精彩回答 2  元偷偷看……
maomao0110
3楼-- · 2020-02-04 18:29
自己顶一下,怎么没有人回复呢~~
majingsong
4楼-- · 2020-02-04 19:44
起始位、停止位、校验位是硬件自动生成的
Aweto
5楼-- · 2020-02-04 21:02
一般串口通讯会有选择8位数据或9位数据模式,加校验位的一般是9位模式。校验位的生成是由你设置成奇或偶校验后由系统产生的一个数,这个数会带在8位数据的后面,而接收时9位数据模式中第9位一般是分开到另一个寄存器中的,不会进入接收寄存器里。
maomao0110
6楼-- · 2020-02-05 00:47
楼上的意思是只要把串口相关的寄存器设置好以后,这些起始位、停止位、校验位是硬件自动生成,两个串口要是想通讯的话只要把协议的格式设置成一样就行,软件部分只用关心发送和接收的数据就可以了,是这个意思吗?

一周热门 更多>