ERTW 发表于 2024-3-24 17:56:29

STC8H3K64S4 串口4问题|已解决

本帖最后由 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了。。{:mad:}

ERTW 发表于 2024-3-24 18:03:31

更正一下:
PWMB_PS = 0X2A;                     // PWM 5,6,7 ,   试了一下,转PWM5,6,8(0X0A) 就没有问题

ERTW 发表于 2024-3-24 18:22:06

PWMB_ENO = 0x15;       //
后来发现只使能了PWM7 就出现 问题

ERTW 发表于 2024-3-24 19:03:01

P_SW2 |= 0x04;                                                //UART4: RxD4(P5.2), TxD4(P5.3)

就是这个没用的。。。真无语。。

_奶咖君_ 发表于 2024-3-25 09:46:33

0.0你把串口的配置放到 PWM初始化代码的后面试一试。。

_奶咖君_ 发表于 2024-3-25 09:47:41

你PWM初始化代码的第一句 写法上有点问题,,如果PWM初始化放到了串口初始化的后面 会改变psw2寄存器的值

ERTW 发表于 2024-3-25 15:30:54

_奶咖君_ 发表于 2024-3-25 09:47
你PWM初始化代码的第一句 写法上有点问题,,如果PWM初始化放到了串口初始化的后面 会改变psw2寄存器的值 ...

果然! 多谢了。
页: [1]
查看完整版本: STC8H3K64S4 串口4问题|已解决