stm8串口初始化疑惑,求解

2019-12-30 19:29发布

stm8s用的不多,感觉踩坑了!!!!
在stm8s207的串口初始化中,配置接收中断,是这样 UART1_ITConfig(UART1_IT_RXNE, ENABLE);
但是运行后,就进入到了断言中断中去了,因为开启了断言  #define USE_FULL_ASSERT    (1)
后来发现在中断配置函数中有对中断环境的断言判断 assert_param(IS_UART1_CONFIG_IT_OK(UART1_IT));
跟进去后发现  
#define IS_UART1_CONFIG_IT_OK(Interrupt)
  (((Interrupt) == UART1_IT_PE) ||
   ((Interrupt) == UART1_IT_TXE) ||
   ((Interrupt) == UART1_IT_TC) ||
   ((Interrupt) == UART1_IT_RXNE_OR ) ||
   ((Interrupt) == UART1_IT_IDLE) ||
   ((Interrupt) == UART1_IT_LBDF))
这段代码中,并没有 对UART1_IT_RXNE的判断??????

这是为什么了,难道配置接收中断,必须是配置UART1_IT_RXNE_OR 这个吗?
实际操作确实是用 UART1_ITConfig(UART1_IT_RXNE_OR , ENABLE); 这个函数可以正常。但是我看好多开发版的教程都是 UART1_IT_RXNE的。
老司机来说说看,还是有什么坑在这里?


下附上串口1的初始化函数
void uart1_init(void)
{
    UART1_DeInit();//uart1寄存器复位
    //工作方式配置
    UART1_Init((u32)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1,
      UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
    UART1_ITConfig(UART1_IT_RXNE, ENABLE);//中断配置
    UART1_Cmd(ENABLE);//开启串口1
}
0条回答

一周热门 更多>