打印
[STM8]

STM8S 串口库+IAR

[复制链接]
2001|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cosxpeach|  楼主 | 2014-5-8 16:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在IAR 下用STM8S库调通了串口中断的收发。后来添加读写EEPROM的内容,不知道动到哪里,现在串口怎么调都不行了,发送接收都不行。示波器看RX端有信号,但单步进不了中断。有没有人遇到同样的情况。
用官方寄存器版的串口例程下进去是好的,说明硬件连接上没问题。官方例程是用STVD编译。不知道IAR跟STVD的设置有什么区别没。
搞了一天了没头绪。贴上代 码。

void main()
{

        CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
    enableInterrupts();
    GPIO_Config();
    UART1_DeInit();
    UART1_Init((uint32_t)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO,UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
    /* Enable UART1 Receive interrupt*/
    UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);
    UART1_SendData8(0X03);
    UART1_SendData8(0X04);
    while (1)  //test uart
        {
               
                while(RxCounter1)
                {
                        for( i =0;i<RxCounter1;i++)
                        UART1_SendData8(RxBuffer1[i]);
                }
                
        }
   INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18)
{
    /* Read one byte from the receive data register */
    RxBuffer1[IncrementVar_RxCounter1()] = UART1_ReceiveData8();

    if (GetVar_RxCounter1() == GetVar_NbrOfDataToRead1())
    {
        /* Disable the UART1 Receive interrupt */
        UART1_ITConfig(UART1_IT_RXNE_OR, DISABLE);
    }
}

沙发
mmuuss586| | 2014-5-8 19:43 | 只看该作者
不好意思,没看出来。

看了下串口初始化部分没问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

54

帖子

1

粉丝