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:}
更正一下:
PWMB_PS = 0X2A; // PWM 5,6,7 , 试了一下,转PWM5,6,8(0X0A) 就没有问题 PWMB_ENO = 0x15; //
后来发现只使能了PWM7 就出现 问题 P_SW2 |= 0x04; //UART4: RxD4(P5.2), TxD4(P5.3)
就是这个没用的。。。真无语。。 0.0你把串口的配置放到 PWM初始化代码的后面试一试。。
你PWM初始化代码的第一句 写法上有点问题,,如果PWM初始化放到了串口初始化的后面 会改变psw2寄存器的值 _奶咖君_ 发表于 2024-3-25 09:47
你PWM初始化代码的第一句 写法上有点问题,,如果PWM初始化放到了串口初始化的后面 会改变psw2寄存器的值 ...
果然! 多谢了。
页:
[1]