lb0857 发表于 2021-3-3 20:46:42

求:stc8G系列 UART 带奇偶校验的例程

/***************串口初始化函数 *****************/
void        UART_config(void)
{
        COMx_InitDefine                COMx_InitStructure;                                        //结构定义
        COMx_InitStructure.UART_Mode      = UART_8bit_BRTx;                //模式,   UART_ShiftRight,UART_8bit_BRTx,UART_9bit,UART_9bit_BRTx
        COMx_InitStructure.UART_BRT_Use   = BRT_Timer4;                        //使用波特率,   BRT_Timer2, BRT_Timer4 (注意: 串口2固定使用BRT_Timer2)
        COMx_InitStructure.UART_BaudRate= 115200ul;                        //波特率,   110 ~ 115200
        COMx_InitStructure.UART_RxEnable= ENABLE;                                //接收允许,   ENABLE或DISABLE
        COMx_InitStructure.UART_Interrupt = ENABLE;                                //中断允许,   ENABLE或DISABLE
        COMx_InitStructure.UART_Polity    = Polity_0;                        //指定中断优先级(低到高) Polity_0,Polity_1,Polity_2,Polity_3
        COMx_InitStructure.UART_P_SW      = UART4_SW_P02_P03;        //切换端口,   UART4_SW_P02_P03,UART4_SW_P52_P53
        UART_Configuration(UART4, &COMx_InitStructure);                //初始化串口3 UART1,UART2,UART3,UART4

        PrintString4("STC8 UART4 Test Programme!\r\n");        //UART4发送一个字符串
}
stc8g代码风格,蛮好.有官方提供的库函数此乃一大进步;

不过,stc8g库函数的例子没有奇偶校验,现在产品上面通讯需要用到



小李非刀 发表于 2021-3-3 22:29:24

初始化时使用9位数据位。
接收时校验位在RB8。
发送时:
ACC = dat;
TB8 = P;//或TP8 = ~P
SBUF = ACC;

lb0857 发表于 2021-3-4 08:37:28

小李非刀 发表于 2021-3-3 22:29
初始化时使用9位数据位。
接收时校验位在RB8。
发送时:


能不能在stc例子说明更改一下测试正常的奇偶检验选项的例程   将来 也可以作为stc库文件发布   
附件是官方网站下载的不带奇偶校验的例子


小李非刀 发表于 2021-3-20 21:54:52

lb0857 发表于 2021-3-4 08:37
能不能在stc例子说明更改一下测试正常的奇偶检验选项的例程   将来 也可以作为stc库文件发布   
附件 ...

按我上面说的改动一下就可以了。

bluerain 发表于 2021-6-14 19:26:23

小李非刀 发表于 2021-3-20 21:54
按我上面说的改动一下就可以了。

你没测试过吧,或者编译软件需要设置优化程度么?我按默认的优化,P根本不好用。感觉根本没把数据赋值给ACC。重新写个小程序才算把校验做正确了。

小李非刀 发表于 2021-6-16 17:50:25

bluerain 发表于 2021-6-14 19:26
你没测试过吧,或者编译软件需要设置优化程度么?我按默认的优化,P根本不好用。感觉根本没把数据赋值给A ...

我用奇偶校验都是用P,P是51的状态寄存器的一个校验位。居然质疑我没测试过,90年代就用到现在。STC-ISP里的通信就用的奇校验。
页: [1]
查看完整版本: 求:stc8G系列 UART 带奇偶校验的例程