[STM8] STM8S 串口库+IAR

[复制链接]
2195|1
 楼主| cosxpeach 发表于 2014-5-8 16:04 | 显示全部楼层 |阅读模式
在IAR 下用STM8S库调通了串口中断的收发。后来添加读写EEPROM的内容,不知道动到哪里,现在串口怎么调都不行了,发送接收都不行。示波器看RX端有信号,但单步进不了中断。有没有人遇到同样的情况。
用官方寄存器版的串口例程下进去是好的,说明硬件连接上没问题。官方例程是用STVD编译。不知道IAR跟STVD的设置有什么区别没。
搞了一天了没头绪。贴上代 码。

  1. void main()
  2. {

  3.         CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
  4.     enableInterrupts();
  5.     GPIO_Config();
  6.     UART1_DeInit();
  7.     UART1_Init((uint32_t)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO,UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
  8.     /* Enable UART1 Receive interrupt*/
  9.     UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);
  10.     UART1_SendData8(0X03);
  11.     UART1_SendData8(0X04);
  12.     while (1)  //test uart
  13.         {
  14.                
  15.                 while(RxCounter1)
  16.                 {
  17.                         for( i =0;i<RxCounter1;i++)
  18.                         UART1_SendData8(RxBuffer1[i]);
  19.                 }
  20.                 
  21.         }
  1.    INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18)
  2. {
  3.     /* Read one byte from the receive data register */
  4.     RxBuffer1[IncrementVar_RxCounter1()] = UART1_ReceiveData8();

  5.     if (GetVar_RxCounter1() == GetVar_NbrOfDataToRead1())
  6.     {
  7.         /* Disable the UART1 Receive interrupt */
  8.         UART1_ITConfig(UART1_IT_RXNE_OR, DISABLE);
  9.     }
  10. }

mmuuss586 发表于 2014-5-8 19:43 | 显示全部楼层
不好意思,没看出来。

看了下串口初始化部分没问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

54

帖子

1

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