[STM8] STM8L152c6t6串口接收中断问题

[复制链接]
 楼主| 尛舞icc 发表于 2017-9-5 13:13 | 显示全部楼层 |阅读模式
如题,STM8L152C6T6或者STM8L052C6T6的串口接收中断始终不能用,求高手指点,串口发送可以,接收没反应,寄存器版本的

有做过的  大牛     贴个初始化代码,小弟感激不尽   要寄存器的初始化代码 和中断代码   感谢!
mmuuss586 发表于 2017-9-5 13:42 | 显示全部楼层
参考STM8S的好了;

mmuuss586 发表于 2017-9-5 13:42 | 显示全部楼层
4-Uart.rar (54.43 KB, 下载次数: 10)
小将wzj 发表于 2017-9-15 15:39 | 显示全部楼层
/****************************************UART1口配置******************************/
void UART_Init(void)
{
    USART1_CR1=0x00;          //设置M字长,8位数据位
    USART1_CR2=0x2c;          //使能发送、接收;
    USART1_CR3=0x00;         //1位停止位
   
    USART1_BRR2=0x03;       //设置波特率为9600
    USART1_BRR1=0x68;
}


#pragma vector=USART_R_RXNE_vector
__interrupt void USART_RX_ISR(void)
{
    int ui8RX_temp = 0;
          if(USART1_SR_OR)
        {
                /*  发生过载错误,
                顺序读UART1_SR, UART1_DR来清UART1_SR_OR_LHE位*/
                ui8RX_temp = USART1_SR;
                ui8RX_temp = USART1_DR;

                return;
        }
       
    if(USART1_SR_RXNE == 1)//接收数据寄存器中不为空
   {
            ui8RX_temp = USART1_DR;
                USART1_DR = ui8RX_temp;
   }
试试这个
小将wzj 发表于 2017-9-15 15:40 | 显示全部楼层
最后少复制个大括号
 楼主| 尛舞icc 发表于 2017-11-4 15:50 | 显示全部楼层
小将wzj 发表于 2017-9-15 15:39
/****************************************UART1口配置******************************/
void UART_Init(v ...

还是不行    不过还是 谢谢!
michaellengleng 发表于 2017-11-7 17:02 | 显示全部楼层
我司现有大量STM8L052R8T6 芯片 价格有绝对优势,欢迎大家来咨询,各位老板工作顺利
husoffer 发表于 2017-11-23 08:44 | 显示全部楼层
可以试试这个,最好根据官方库来改
INTERRUPT_HANDLER(TIM2_CC_USART2_RX_IRQHandler, 20)
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */
        if(USART_GetITStatus(USART2, USART_IT_RXNE))
        {
                UartRecvBuf[UartRecvLen]=USART_ReceiveData8(USART2);
                UartRecvLen++;
        }
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

67

主题

230

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部