打印
[51单片机]

STC12单片机串口3模式,加奇偶校验

[复制链接]
1889|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 ——白起—— 于 2018-2-28 16:48 编辑

/*********************************************************************************
* 函数名 :  InitUART_0
* 功  能 :  初始化串口0
* 说  明 :  
* 入  参 :  
* 返  回 :  
* 设  计 :  武安君                  时  间 :                        
**********************************************************************************/
void InitUART_0(void)
{
    #define  BPS_4800    0XF4
    #define  BPS_9600    0XFA
    #define  BPS_19200   0XFD


    TMOD |= 0x20;      // 定时器1  方式 2
    SCON  = 0xD0;      // 串口工作 方式 3
    TH1   = BPS_9600;  // 定时器1初值
    TL1   = TH1;       // -----------
    PCON  = 0x00;      // 波特率加倍,00:不加倍 80:加倍
    ES    = 1;         // 串口收发使能
    TR1   = 1;         // 开启定时器1
}


uint8_t  DD_2[] = "123456789\r\n";


for (i = 0; i < sizeof(DD_1); i++)
{
    ACC = DD_1;
    TB8 = P;
   
SBUF = DD_1;
    while(!TI);
    TI = 0;
}
设置串口为模式3 8位数据1位校验  for循环不断发送,但是调串口猎人的奇校验、偶校验、无校验。都没有出现乱码。这个TB8到底怎么用,求大神指点

相关帖子

沙发
ddllxxrr| | 2018-2-28 09:35 | 只看该作者
TB8在方式2或方式3,是发射的第9位数据,作为奇偶校验位或地址帧/数据帧的标志位。
根你的接到要怎么处理有关,你的那个软件只负责收,我想TB8并没有理会。

使用特权

评论回复
评论
——白起—— 2018-2-28 10:09 回复TA
嗯,你说的有一定道理 
板凳
——白起——|  楼主 | 2018-2-28 16:46 | 只看该作者
有没有那位攻城狮指点一下

使用特权

评论回复
地板
一路向北lm| | 2018-2-28 17:16 | 只看该作者
还真没用过奇偶校验的

使用特权

评论回复
5
zqx1000| | 2018-4-10 18:18 | 只看该作者
kankan

使用特权

评论回复
6
logan0279| | 2023-3-18 18:55 | 只看该作者
一样的问题,按网上查到的方法,SBUF = ACC(STC的官方例程也是这么写的),但是收到的数据只有第一个字节正确,后面的字节全是0x80。于是改为SBUF = dat;这次收到的数据正常了,但是跟LZ一样的问题,不管接收的时候选择什么校验方式,无论奇、偶、MARK、SPACE都能正常接收,只有设为无校验的时候才会收到乱码。以为是串口调试助手的问题,于是换了很多种串口调试助手,全这样。难道这些串口调试助手全都没有处理第9位数据吗?

使用特权

评论回复
7
logan0279| | 2023-3-20 14:50 | 只看该作者
岛上称霸 发表于 2023-3-20 09:43
我之前也试过其实很多串口助手都不会去处理第九位数据的,实际上在通信的时候,你用示波器抓一下数据,能 ...

嗯,第九位数据确实存在,如果我在调试软件上设置为8位数据,无校验,收到的就会是乱码。但如果设为除了无校验以外的其他任何校验方式,收发数据都完全正常。也就是第九位数据虽然串口进行了收发,但软件这块并没有对第九位数据按要求进行验证。串口硬件这块,对于第九位数据,也没有做任何处理,这就导致了第九位数据完全成了摆设。只是感觉奇怪,似乎所有的串口收发软件全是这样处理的。

另外,今天我使用CH32V103C8T6的USART1进行了一下验证,USART1设置为9位数据,ODD校验,进行通讯测试的时候,也是同样的现象,只有在我把串口调试软件的校验方式设为无校验的时候才会出错。其他无论设为哪种校验方式,均可以正常收发。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:祖国万岁

11

主题

239

帖子

2

粉丝