麻烦发我一份STC8H8K64U串口2的奇偶校验程序 | 已解决
测试串口1的奇偶校验能用,串口2的不好用,不是的是什么原因。麻烦发我一份STC8H8K64U串口2的奇偶校验程序,谢谢!
谢谢梁工,已经好用了,感谢! 这就好,良性互动,搞定了,回来感谢下,我们研发就支持的更开心 {:4_165:} 梁工 发表于 2022-12-17 15:10
void UART2_TxByte(u8 dat)
{
B_TX2_Busy = 1; //标志发送忙
ACC = dat;
if(P) S2CON |=S2TB8; //奇校验
// if(!P) S2CON |=S2TB8; //偶校验
else S2CON &= ~S2TB8;
S2BUF = dat; //发一个字节
while(B_TX2_Busy); //等待发送完成
}
梁工,这是解压的串口2带校验的程序片段?我的困惑是S2CON 可以位寻址吗?S2TB8 可以直接引用吗? 微光 发表于 2024-1-18 21:59
void UART2_TxByte(u8 dat)
{
B_TX2_Busy = 1; //标志发送忙
你可以看看手册,,手册里描述了关于哪些可以位寻址 哪些不行 本帖最后由 梁工 于 2024-1-19 11:35 编辑
微光 发表于 2024-1-18 21:59
void UART2_TxByte(u8 dat)
{
B_TX2_Busy = 1; //标志发送忙
对于8位的51,特殊功能寄存器地址为0或8结尾的才能位选址,所以S2CON是不能位选址的,要用“与”操作清0,用“或”操作置1.
if(P) S2CON |=S2TB8; //奇校验
// if(!P) S2CON |=S2TB8; //偶校验
else S2CON &= ~S2TB8;
而对于32位的STC32系列,则所有的位均可位寻址。
页:
[1]