找回密码
 立即注册
查看: 899|回复: 7

STC8H3K64S2 TSSOP20, 4800bps通讯问题

[复制链接]

1

主题

4

回帖

25

积分

新手上路

积分
25
发表于 2023-11-29 15:35:45 | 显示全部楼层 |阅读模式
STC8H3K64S2  TSSOP20  在9600波特率下通讯都是正常的,但是在4800和2400通讯出现异常,4800时断时续,2400直接通讯不起来
回复

使用道具 举报 送花

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

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-11-29 16:15:49 | 显示全部楼层
建议先使用官方例程,只修改主频跟波特率,烧录到芯片里跟电脑通信测试。
串口配置也可以使用STC-ISP软件生成代码:
截图202311291610282178.jpg
波特率降低通信速度变慢,正常会更稳定。可用低主频,或者作为波特率发生器的定时器使用12分频。
回复 支持 反对

使用道具 举报 送花

1

主题

4

回帖

25

积分

新手上路

积分
25
发表于 2023-11-29 16:20:45 | 显示全部楼层
STC8H3K64S2  top20  和STC8H3K64S4-48PIN  串口配置一样的话,有没有问题?目前STC8H3K64S4-48PIN这个单片机正常通讯4800和2400都没有问题

点评

你描述下你的时钟,串口,波特率发生器  详情 回复 发表于 2023-11-29 17:25
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2023-11-29 17:25:09 | 显示全部楼层
范特西*** 发表于 2023-11-29 16:20
STC8H3K64S2  top20  和STC8H3K64S4-48PIN  串口配置一样的话,有没有问题?目前STC8H3K64S4-48PIN这个单片 ...

你描述下你的时钟,串口,波特率发生器
回复 支持 反对

使用道具 举报 送花

1

主题

4

回帖

25

积分

新手上路

积分
25
发表于 2023-11-30 09:27:30 | 显示全部楼层
        TIM_InitTypeDef                TIM_InitStructure;                                                //结构定义
        TIM_InitStructure.TIM_Mode      = TIM_16BitAutoReload;        //指定工作模式,   TIM_16BitAutoReload,TIM_16Bit,TIM_8BitAutoReload,TIM_16BitAutoReloadNoMask
        TIM_InitStructure.TIM_ClkSource = TIM_CLOCK_12T;                //指定时钟源,     TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_Ext
        TIM_InitStructure.TIM_ClkOut    = ENABLE;                                //是否输出高速脉冲, ENABLE或DISABLE
        TIM_InitStructure.TIM_Value     = 65536UL - (MAIN_Fosc / (1000*12));                //初值,
        TIM_InitStructure.TIM_Run       = ENABLE;                                        //是否初始化后启动定时器, ENABLE或DISABLE
        Timer_Inilize(Timer0,&TIM_InitStructure);                                        //初始化Timer0          Timer0,Timer1,Timer2,Timer3,Timer4
        NVIC_Timer0_Init(ENABLE,Priority_0);                //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
回复 支持 反对

使用道具 举报 送花

1

主题

4

回帖

25

积分

新手上路

积分
25
发表于 2023-11-30 09:27:47 | 显示全部楼层
        COMx_InitDefine                COMx_InitStructure;                                        //结构定义

        COMx_InitStructure.UART_Mode      = UART_8bit_BRTx;        //模式, UART_ShiftRight,UART_8bit_BRTx,UART_9bit,UART_9bit_BRTx
        COMx_InitStructure.UART_BRT_Use   = BRT_Timer1;                        //使用波特率, BRT_Timer1, BRT_Timer2 (注意: 串口2固定使用BRT_Timer2)
        //COMx_InitStructure.UART_BaudRate  = 115200ul;                        //波特率, 一般 110 ~ 115200
        switch(EEPROM_Data.REG_Data_Keep.reg_4001_Band)
    {
        case 1://1200
            COMx_InitStructure.UART_BaudRate  = 1200ul;                        //波特率, 一般 110 ~ 115200
            break;
        case 2://2400
            COMx_InitStructure.UART_BaudRate  = 2400ul;                        //波特率, 一般 110 ~ 115200
            break;
        case 3://4800
            COMx_InitStructure.UART_BaudRate  = 4800ul;                        //波特率, 一般 110 ~ 115200
            break;
        case 4://9600
            COMx_InitStructure.UART_BaudRate  = 9600ul;                        //波特率, 一般 110 ~ 115200
            break;
        case 5://19200
            COMx_InitStructure.UART_BaudRate  = 19200ul;                        //波特率, 一般 110 ~ 115200
            break;
        case 6://38400
            COMx_InitStructure.UART_BaudRate  = 38400ul;                        //波特率, 一般 110 ~ 115200
            break;
        case 7://57600
            COMx_InitStructure.UART_BaudRate  = 57600ul;                        //波特率, 一般 110 ~ 115200
            break;
        case 8://115200
            COMx_InitStructure.UART_BaudRate  = 115200ul;                        //波特率, 一般 110 ~ 115200
            break;
                default://9600      错误与默认为9600
            COMx_InitStructure.UART_BaudRate  = 9600;                        //波特率, 一般 110 ~ 115200
                        break;               
    }
     //       COMx_InitStructure.UART_BaudRate  = 115200;       
        COMx_InitStructure.UART_RxEnable  = ENABLE;                                //接收允许,   ENABLE或DISABLE
        COMx_InitStructure.BaudRateDouble = DISABLE;                        //波特率加倍, ENABLE或DISABLE
        UART_Configuration(UART1, &COMx_InitStructure);                //初始化串口1 UART1,UART2,UART3,UART4
        NVIC_UART1_Init(ENABLE,Priority_3);                //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3

        COMx_InitStructure.UART_Mode      = UART_8bit_BRTx;                //模式,   UART_ShiftRight,UART_8bit
回复 支持 反对

使用道具 举报 送花

1

主题

4

回帖

25

积分

新手上路

积分
25
发表于 2023-11-30 09:33:20 | 显示全部楼层
您这边给看看配置有没有问题,9600波特率及以上都没有问题,4800及以下就出问题
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:61
  • 最近打卡:2025-02-18 18:39:08

13

主题

91

回帖

279

积分

中级会员

积分
279
发表于 2024-7-3 16:51:27 | 显示全部楼层
关于串口通讯这方面的帖子有点少啊
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 20:21 , Processed in 0.138480 second(s), 101 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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