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

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

[复制链接]
  • TA的每日心情
    开心
    2024-5-6 13:35
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    5

    主题

    32

    回帖

    123

    积分

    注册会员

    积分
    123
    发表于 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);        //等待发送完成
    }



    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    14 小时前
  • 签到天数: 141 天

    [LV.7]常住居民III

    27

    主题

    1338

    回帖

    4169

    积分

    论坛元老

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

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

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

    14.85 KB, 下载次数: 9

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

    16.06 KB, 下载次数: 10

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    14 小时前
  • 签到天数: 108 天

    [LV.6]常住居民II

    10

    主题

    578

    回帖

    908

    积分

    高级会员

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-5-6 13:35
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    5

    主题

    32

    回帖

    123

    积分

    注册会员

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

    请问该如何写
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    14 小时前
  • 签到天数: 108 天

    [LV.6]常住居民II

    10

    主题

    578

    回帖

    908

    积分

    高级会员

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

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-5-6 13:35
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    5

    主题

    32

    回帖

    123

    积分

    注册会员

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

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-5-6 13:35
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    5

    主题

    32

    回帖

    123

    积分

    注册会员

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

    还是不行

    点评

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

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 119 天

    [LV.6]常住居民II

    31

    主题

    392

    回帖

    2016

    积分

    荣誉版主

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

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-22 08:53
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    9

    主题

    40

    回帖

    277

    积分

    等待验证会员

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-22 08:53
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    9

    主题

    40

    回帖

    277

    积分

    等待验证会员

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-15 22:58 , Processed in 0.074186 second(s), 71 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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