范特西物联网 发表于 2023-11-29 15:35:45

STC8H3K64S2 TSSOP20, 4800bps通讯问题

STC8H3K64S2TSSOP20在9600波特率下通讯都是正常的,但是在4800和2400通讯出现异常,4800时断时续,2400直接通讯不起来

乘风飞扬 发表于 2023-11-29 16:15:49

建议先使用官方例程,只修改主频跟波特率,烧录到芯片里跟电脑通信测试。
串口配置也可以使用STC-ISP软件生成代码:

波特率降低通信速度变慢,正常会更稳定。可用低主频,或者作为波特率发生器的定时器使用12分频。

范特西物联网 发表于 2023-11-29 16:20:45

STC8H3K64S2top20和STC8H3K64S4-48PIN串口配置一样的话,有没有问题?目前STC8H3K64S4-48PIN这个单片机正常通讯4800和2400都没有问题

神农鼎 发表于 2023-11-29 17:25:09

范特西物联网 发表于 2023-11-29 16:20
STC8H3K64S2top20和STC8H3K64S4-48PIN串口配置一样的话,有没有问题?目前STC8H3K64S4-48PIN这个单片 ...

你描述下你的时钟,串口,波特率发生器

范特西物联网 发表于 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

范特西物联网 发表于 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

范特西物联网 发表于 2023-11-30 09:33:20

您这边给看看配置有没有问题,9600波特率及以上都没有问题,4800及以下就出问题

大哲老师 发表于 2024-7-3 16:51:27

关于串口通讯这方面的帖子有点少啊
页: [1]
查看完整版本: STC8H3K64S2 TSSOP20, 4800bps通讯问题