21ic问答首页 - 关于HC32L196串口奇偶校验问题
关于HC32L196串口奇偶校验问题
IchBinMarcel2021-08-24
在配置HC32L196的串口0时,使用了mode 3,
下载视频
关于配置奇偶校验的地方不是很理解,
stcCfg.enRunMode = UartMskMode3; ///<模式3
stcCfg.enStopBit = UartMsk1bit; ///<1bit停止位
stcCfg.enMmdorCk = UartMskDataOrAddr; ///<
stcCfg.stcBaud.u32Baud = 115200; ///<波特率115200
stcCfg.stcBaud.enClkDiv = UartMsk8Or16Div; ///<通道采样分频配置
stcCfg.stcBaud.u32Pclk = Sysctrl_GetPClkFreq(); ///<获得外设时钟(PCLK)频率值
Uart_Init(M0P_UART0, &stcCfg); ///<串口初始化
UartMskDataOrAddr = 0u, ///<多机模式时,通过读写SBUF[8]决定帧为数据帧或地址帧
UartMskEven = 0x4u, ///<非多机模式偶校验
UartMskOdd = 0x8u, ///<非多机模式奇校验
这三个值,下面两个好理解,奇校验和偶校验,
但是第一个,它是无奇偶校验的意思么?
当我配置为 UartMskDataOrAddr 时 与电脑上的串口调试软件无法正常通讯
有没有人知道这个 UartMskDataOrAddr 是啥意思?
下载视频
关于配置奇偶校验的地方不是很理解,
stcCfg.enRunMode = UartMskMode3; ///<模式3
stcCfg.enStopBit = UartMsk1bit; ///<1bit停止位
stcCfg.enMmdorCk = UartMskDataOrAddr; ///<
stcCfg.stcBaud.u32Baud = 115200; ///<波特率115200
stcCfg.stcBaud.enClkDiv = UartMsk8Or16Div; ///<通道采样分频配置
stcCfg.stcBaud.u32Pclk = Sysctrl_GetPClkFreq(); ///<获得外设时钟(PCLK)频率值
Uart_Init(M0P_UART0, &stcCfg); ///<串口初始化
UartMskDataOrAddr = 0u, ///<多机模式时,通过读写SBUF[8]决定帧为数据帧或地址帧
UartMskEven = 0x4u, ///<非多机模式偶校验
UartMskOdd = 0x8u, ///<非多机模式奇校验
这三个值,下面两个好理解,奇校验和偶校验,
但是第一个,它是无奇偶校验的意思么?
当我配置为 UartMskDataOrAddr 时 与电脑上的串口调试软件无法正常通讯
有没有人知道这个 UartMskDataOrAddr 是啥意思?
赞0
还有Timer3在计数时用哪个函数可以重置计数器初值让计数重新开始而不触发中断
评论
2021-08-24
赞0
评论
2021-08-24
赞0
下载视频
问题出在mode选择上,应该选择mode1(Start (1bit) + Data(8bit)+ Stop(1~2bit))
mode3是(Start (1bit) + Data(8bit)+ B8(1bit) + Stop(1~2bit))
平时常规使用的都是mode1(与STM32使用的配置相同),没想到HC32是这么配置串口的
评论
2021-08-24
您需要登录后才可以回复 登录 | 注册