在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);
}
}
|