在串口通信规范里面,第九位是奇偶校验位,是可选的。
如果是PC机,以及使用硬件串口通信芯片的机子,这奇偶校验位,是硬件自动加上的,只需用软件设置一下而已。
如果是单片机的板子,这第九位,可就需要用软件来发送,使用起来就特别灵活。
如果是51单片机,应该这样编程:
//-----------------------------------
ACC = char buf[0]; //取来待发送数据到ACC,即可生成校验位
TB8 = P; //把校验位送到待发送的第九位
//如果这第九位用来区分地址和数据,也可以用:
TB8 = 1;
//或
TB8 = 0;
SBUF = ACC; //发送8位数,捎带出去第九位
//-----------------------------------
要想弄这些,必须懂硬件和汇编语言,仅仅懂C的人,只能说些外行话,干些粗活而已。
串口是一位一位送的,8个位一个字节,第九位你得放到下一字节里。
楼上正确