找回密码
 立即注册
查看: 1186|回复: 15

STC32G128K 串口4 如何设置校验位 | 已解决

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:161
  • 最近打卡:2025-05-01 18:53:09
已绑定手机

10

主题

42

回帖

497

积分

中级会员

积分
497
发表于 2024-3-6 16:07:01 | 显示全部楼层 |阅读模式
STC32G128K单片机使用串口4 如果设置成8位数据无校验位,就不出问题,如果采用9位数据含校验位,发送数据就出现问题,麻烦大佬们看下问题出现在哪里?
个人代码


void Uart4_Isr(void) interrupt 18
{
        if (S4CON & 0x02)        //检测串口4发送中断
        {
                S4CON &= ~0x02;        //清除串口4发送中断请求位
        }
        if (S4CON & 0x01)        //检测串口4接收中断
        {
                S4CON &= ~0x01;        //清除串口4接收中断请求位
        }
}



void Uart4_Init(void)        //9600bps@33.1776MHz
{
        S4CON = 0x90;                //9位数据,可变波特率
        S4CON |= 0x40;                //串口4选择定时器4为波特率发生器
        T4T3M |= 0x20;                //定时器时钟1T模式
        T4L = 0xA0;                        //设置定时初始值
        T4H = 0xFC;                        //设置定时初始值
        T4T3M |= 0x80;                //定时器4开始计时
        IE2 |= 0x10;                //使能串口4中断
}

void        UART4_TxByte(unsigned char dat)
{
        B_TX4_Busy = 1;                //标志发送忙
        ACC = dat;
        S4TB8=~P;        //偶校验
        S4BUF = dat;                //发一个字节
        while(B_TX4_Busy);        //等待发送完成
}



回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-3-6 19:40:18 | 显示全部楼层
本帖最后由 乘风飞扬 于 2024-3-7 11:30 编辑

附件是串口4+校验位与电脑收发测试,STC8系列平台、STC32平台的例子,供参考。

串口4中断模式与电脑收发测试-校验位.zip

14.85 KB, 下载次数: 108

串口4中断模式与电脑收发测试-校验位-STC32G.zip

16.06 KB, 下载次数: 107

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:453
  • 最近打卡:2025-05-02 08:15:40
已绑定手机

13

主题

1257

回帖

2975

积分

金牌会员

积分
2975
发表于 2024-3-6 17:10:11 | 显示全部楼层
S4TB8=~P;        //偶校验-----------P是ACC的偶校验位,取反后即使数据发送出去,对方也会丢弃的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:161
  • 最近打卡:2025-05-01 18:53:09
已绑定手机

10

主题

42

回帖

497

积分

中级会员

积分
497
发表于 2024-3-6 18:50:09 来自手机 | 显示全部楼层
21cnsound 发表于 2024-3-6 17:10
S4TB8=~P;        //偶校验-----------P是ACC的偶校验位,取反后即使数据发送出去,对方也会丢弃的。 ...

请问该如何写{:5_272:}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:453
  • 最近打卡:2025-05-02 08:15:40
已绑定手机

13

主题

1257

回帖

2975

积分

金牌会员

积分
2975
发表于 2024-3-6 20:07:50 | 显示全部楼层

S4TB8=P;        //偶校验
这个肯定得改,如果还不行再找其他原因
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:161
  • 最近打卡:2025-05-01 18:53:09
已绑定手机

10

主题

42

回帖

497

积分

中级会员

积分
497
发表于 2024-3-7 08:44:24 | 显示全部楼层
乘风*** 发表于 2024-3-6 19:40
附件是串口4+校验位与电脑收发测试,STC8系列平台的例子,你移植到STC32平台上试试。 ...

移植后还是不行
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:161
  • 最近打卡:2025-05-01 18:53:09
已绑定手机

10

主题

42

回帖

497

积分

中级会员

积分
497
发表于 2024-3-7 08:44:59 | 显示全部楼层
21cns*** 发表于 2024-3-6 20:07
S4TB8=P;        //偶校验
这个肯定得改,如果还不行再找其他原因

还是不行

点评

P是偶校验位,如果不行可以尝试在acc操作后插入三个nop试试  详情 回复 发表于 2024-3-7 09:14
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5454

积分

版主

积分
5454
发表于 2024-3-7 09:14:26 | 显示全部楼层

P是偶校验位,如果不行可以尝试在acc操作后插入三个nop试试
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-04-23 15:28:46

19

主题

65

回帖

223

积分

等待验证会员

积分
223
发表于 2024-3-7 11:24:08 | 显示全部楼层
参考我的帖子,虽然是15系列的,效验方法适合stc32
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-04-23 15:28:46

19

主题

65

回帖

223

积分

等待验证会员

积分
223
发表于 2024-3-7 11:27:17 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 13:19 , Processed in 0.135276 second(s), 118 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表