找回密码
 立即注册
查看: 2440|回复: 5

STC8G1K17的串口2

[复制链接]

11

主题

12

回帖

111

积分

注册会员

积分
111
发表于 2023-4-14 11:42:29 | 显示全部楼层 |阅读模式
用STC8G系列-串口相关程序里解压的02-串口2中断收发-C语言,hex文件烧录到STC8G1K17里,没看到正常数据收发,串口在疯狂发送FE;发送的数据回显也不对。 2.png
源码在STC8G1K08里仿真,看到的现象与预期一致

烧录.rar

53.7 MB, 下载次数: 89

显示.rar

40.77 MB, 下载次数: 88

02-串口2中断收发-C语言.rar

67.06 KB, 下载次数: 104

回复

使用道具 举报 送花

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

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-4-14 13:48:13 | 显示全部楼层
程序开始位置进行相关的IO口初始化:
  1.     P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
复制代码


点评

初始化时有设置IO的,实测没有任何问题。 void UART2_config(u32 brt, u8 timer, u8 io) // brt: 通信波特率, timer=2: 波特率使用定时器2, 其它值: 使用Timer2做波特率. io=0: 串口2切换到P1.0 P1.1, =1: 切换到P4  详情 回复 发表于 2023-4-14 13:50
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2023-4-14 13:48:17 | 显示全部楼层
下载你的附件,直接测试HEX,没有问题,你检查一下你的硬件,有问题了。


1.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2023-4-14 13:50:20 | 显示全部楼层
乘风*** 发表于 2023-4-14 13:48
程序开始位置进行相关的IO口初始化:

初始化时有设置IO的,实测没有任何问题。
void        UART2_config(u32 brt, u8 timer, u8 io)        // brt: 通信波特率,  timer=2: 波特率使用定时器2, 其它值: 使用Timer2做波特率. io=0: 串口2切换到P1.0 P1.1, =1: 切换到P4.6 P4.7.
{
        brt = 65536UL - (MAIN_Fosc / 4) / brt;
        if(timer == 2)        SetTimer2Baudraye((u16)brt);        //波特率使用定时器2
        else                        SetTimer2Baudraye((u16)brt);        //波特率使用定时器2                两个条件都使用Timer2, 是为了跟另外串口函数兼容

        S2CON &= ~(1<<7);        // 8位数据, 1位起始位, 1位停止位, 无校验
        IE2   |= 1;                        //允许中断
        S2CON |= (1<<4);        //允许接收
        if(io == 1)        {        P_SW2 |=  1;        P4n_standard(0xc0);}        //切换到 P4.6 P4.7
        else                {        P_SW2 &= ~1;        P1n_standard(0x03);}        //切换到 P1.0 P1.1
}
回复 支持 反对

使用道具 举报 送花

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

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-4-14 13:59:13 | 显示全部楼层
梁*** 发表于 2023-4-14 13:50
初始化时有设置IO的,实测没有任何问题。
void        UART2_config(u32 brt, u8 timer, u8 io)        // brt: 通信波 ...

没注意到是在串口设置里面进行的IO口初始化,我在程序起始位置加上IO口初始化后烧录测试收发正常。

点评

这程序是我提供的,给过无数的用户,我刚才再次直接下载楼主附件的HEX测试都是正常的。所以,严重怀疑楼主的硬件有问题。  详情 回复 发表于 2023-4-14 15:30
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2023-4-14 15:30:07 | 显示全部楼层
乘风*** 发表于 2023-4-14 13:59
没注意到是在串口设置里面进行的IO口初始化,我在程序起始位置加上IO口初始化后烧录测试收发正常。 ...

这程序是我提供的,给过无数的用户,我刚才再次直接下载楼主附件的HEX测试都是正常的。所以,严重怀疑楼主的硬件有问题。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 15:42 , Processed in 0.312373 second(s), 87 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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