c++怎样向串口发送第九位数据

2025-02-24 21:46:33
推荐回答(3个)
回答1:

在串口通信规范里面,第九位是奇偶校验位,是可选的。

如果是PC机,以及使用硬件串口通信芯片的机子,这奇偶校验位,是硬件自动加上的,只需用软件设置一下而已。
如果是单片机的板子,这第九位,可就需要用软件来发送,使用起来就特别灵活。

如果是51单片机,应该这样编程:
//-----------------------------------
ACC = char buf[0]; //取来待发送数据到ACC,即可生成校验位
TB8 = P; //把校验位送到待发送的第九位
//如果这第九位用来区分地址和数据,也可以用:
TB8 = 1;
//或
TB8 = 0;

SBUF = ACC; //发送8位数,捎带出去第九位
//-----------------------------------
要想弄这些,必须懂硬件和汇编语言,仅仅懂C的人,只能说些外行话,干些粗活而已。

回答2:

串口是一位一位送的,8个位一个字节,第九位你得放到下一字节里。

回答3:

楼上正确