找回密码
 立即注册
查看: 604|回复: 6

STC8H3K64S4 串口4问题|已解决

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-03-26 16:55:50

2

主题

6

回帖

36

积分

新手上路

积分
36
发表于 2024-3-24 17:56:29 | 显示全部楼层 |阅读模式
本帖最后由 STC8H8K64U 于 2024-3-25 17:07 编辑

由于PWM 和串口都需要做管脚转移,发现出了个奇怪的问题,在配置PWMB_PS ,PWM7 为P0.2 里,串口4(RXD_2,TXD_2),会上电后就一直处于接收中断。。


部份代码:

        P_SW1 &= ~0xc0;                                                //UART1/USART1: RxD(P3.0), TxD(P3.1)
        P_SW2 &= ~0x01;                                                //UART2/USART2: RxD2(P1.0), TxD2(P1.1)
        P_SW2 |= 0x02;                                                //UART3: RxD3(P5.0), TxD3(P5.1)
        P_SW2 |= 0x04;                                                //UART4: RxD4(P5.2), TxD4(P5.3)



void Init_PWM()
{
          P_SW2 = 0x80;
          PWMA_PS = 0X40;                           
          PWMB_PS = 0X2A;                       // PWM 5,6,7 ,   试了一下,转PWM5,6,8(0XAA) 就没有问题      
         
          PWMA_CCER2 = 0x00;      
          PWMA_CCMR4 = 0x60;
          PWMA_CCER2 = 0x10;
         
          PWMA_CCR4 = 11000;            
          PWMA_ARR =  22000;            

         
          PWMA_ENO = 0x40;
          PWMA_BKR = 0x80;
          PWMA_CR1 = 0x01;
         
    PWMB_CCER1 = 0x00;                        
   PWMB_CCER2 = 0x00;
   PWMB_CCMR1 = 0x60;                          
    PWMB_CCMR2 = 0x60;                          
    PWMB_CCMR3 = 0x60;                       
    PWMB_CCER1 = 0x11;                          
   PWMB_CCER2 = 0x01;                        
         
    PWMB_CCR5 = 0;                           
    PWMB_CCR6 = 0;                           
    PWMB_CCR7 = 0;                           
    PWMB_ARR = 2200;                           
         
    PWMB_ENO = 0x15;                           
    PWMB_BKR = 0x80;                           
    PWMB_CR1 = 0x01;                           

}
求大神们帮忙解答一下,是不是配置出错了?不然现状只能割铜皮转到PWM8了。。

回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-03-26 16:55:50

2

主题

6

回帖

36

积分

新手上路

积分
36
发表于 2024-3-24 18:03:31 | 显示全部楼层
更正一下:
PWMB_PS = 0X2A;                       // PWM 5,6,7 ,   试了一下,转PWM5,6,8(0X0A) 就没有问题
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-03-26 16:55:50

2

主题

6

回帖

36

积分

新手上路

积分
36
发表于 2024-3-24 18:22:06 | 显示全部楼层
PWMB_ENO = 0x15;       //
后来发现只使能了PWM7 就出现 问题
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-03-26 16:55:50

2

主题

6

回帖

36

积分

新手上路

积分
36
发表于 2024-3-24 19:03:01 | 显示全部楼层
  P_SW2 |= 0x04;                                                //UART4: RxD4(P5.2), TxD4(P5.3)

就是这个没用的。。。真无语。。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-3-25 09:46:33 | 显示全部楼层
0.0你把串口的配置放到 PWM初始化代码的后面试一试。。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-3-25 09:47:41 | 显示全部楼层
你PWM初始化代码的第一句 写法上有点问题,,如果PWM初始化放到了串口初始化的后面 会改变psw2寄存器的值
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-03-26 16:55:50

2

主题

6

回帖

36

积分

新手上路

积分
36
发表于 2024-3-25 15:30:54 | 显示全部楼层
_奶*** 发表于 2024-3-25 09:47
你PWM初始化代码的第一句 写法上有点问题,,如果PWM初始化放到了串口初始化的后面 会改变psw2寄存器的值 ...

果然! 多谢了。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 08:12 , Processed in 0.161693 second(s), 82 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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