新手上路
- 积分
- 36
- 金钱
- 36
- 注册时间
- 2018-3-28
- 在线时间
- 11 小时
|
5金钱
我又来了,单独测试串口中断时,发送123可以接收123。加入OLED显示后只接受12。
串口中断应该不是是每接受一个字符中断一次?
void USART1_IRQHandler(void)
{
uint16_t res;
if(USART_GetITStatus(USART1,USART_IT_RXNE))
{
res =USART_ReceiveData(USART1);
USART_SendData(USART1,res);
ch[0]=res;
// unsigned char i;
// extern const unsigned char BMP1[];
DelayInit();
I2C_Configuration();
OLED_Init();
if(flag==0)
{
OLED_CLS();
OLED_ShowStr(0,3,ch,1);//2aêÔ6*8×Ö·û
}
if(flag==1)
{
OLED_ShowStr(8,3,ch,1);//2aêÔ6*8×Ö·û
}
DelayS(1);
flag++;
}
|
最佳答案
查看完整内容[请看2#楼]
哪有在中断里初始化I2C 还初始化OLED 还写OLED。。。串口数据多了肯定丢失。。。中断里只往缓冲区存,主循环之前初始化,主循环写OLED就不会丢数据了
|