找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2324|回复: 2
打印 上一主题 下一主题
收起左侧

STM32和openmv串口通讯运行速度变慢

[复制链接]
跳转到指定楼层
楼主
20黑币
1.使用了仿真器下载程序
2.可以正常收发数据
3.在拔掉openmv串口后,程序起飞,正常运行
4插上串口后,一行代码大概跑0.5秒,屏幕刷新很慢

视频中黑屏是放下手机在插线,各位大佬移步观看视频(GIF)。



最佳答案

查看完整内容

没有清除串口接收中断标志。 void DEBUG_USART_IRQHandler(void) { if(USART_GetITStatus(DEBUG_USARTx,USART_IT_RXNE)!=RESET) { temp_head[0] = USART_ReceiveData(DEBUG_USARTx); } USART_ClearITPendingBit(DEBUG_USARTx, USART_IT_RXNE); USART_ClearFlag(DEBUG_USARTx, USART_FLAG_RXNE); }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:332130 发表于 2021-2-17 09:27 | 只看该作者
没有清除串口接收中断标志。
void DEBUG_USART_IRQHandler(void)
{
        if(USART_GetITStatus(DEBUG_USARTx,USART_IT_RXNE)!=RESET)
        {      
                temp_head[0] = USART_ReceiveData(DEBUG_USARTx);
                 
        }
        USART_ClearITPendingBit(DEBUG_USARTx, USART_IT_RXNE);
        USART_ClearFlag(DEBUG_USARTx, USART_FLAG_RXNE);
}
回复

使用道具 举报

板凳
ID:644357 发表于 2021-2-17 09:34 | 只看该作者
这是串口中断
  1. void DEBUG_USART_IRQHandler(void)
  2. {
  3.         if(USART_GetITStatus(DEBUG_USARTx,USART_IT_RXNE)!=RESET)
  4.         {       
  5.                 temp_head[0] = USART_ReceiveData(DEBUG_USARTx);
  6.                  
  7.         }
  8. }
复制代码

这是显示数据的代码
  1.         while(1)
  2.         {
  3.                 Gui_DrawFont_GBK16(5,5,BLUE,BLACK,"任务显示:");
  4.                 Gui_DrawFont_GBK16(5,55,BLUE,BLACK,"进程:");
  5.                 Gui_DrawFont_Num32(0 ,20,GREEN,BLACK,Num[2]);
  6.                 Gui_DrawFont_Num32(0 ,20,BLACK,BLACK,Num[2]);
  7.                 Gui_DrawFont_Num32(0 ,20,GREEN,BLACK,Num[3]);
  8.                 Gui_DrawFont_Num32(0 ,20,BLACK,BLACK,Num[3]);
  9.                 Gui_DrawFont_Num32(0 ,20,GREEN,BLACK,Num[4]);
  10.                 Gui_DrawFont_Num32(0 ,20,BLACK,BLACK,Num[4]);
  11.                
  12.                 Gui_DrawFont_Num32(25,20,GREEN,BLACK,Num[2]);
  13.                 Gui_DrawFont_Num32(50,20,GREEN,BLACK,Num[3]);
  14.                 Gui_DrawFont_GBK16(82,30,RED,BLACK,"+");
  15.                 Gui_DrawFont_Num32(90,20,GREEN,BLACK,Num[1]);
  16.                 Gui_DrawFont_Num32(115,20,GREEN,BLACK,Num[2]);
  17.                 Gui_DrawFont_Num32(140,20,GREEN,BLACK,Num[3]);
  18.                 USART_SendData(DEBUG_USARTx,0xA2);
  19.                 sprintf((char*)cx_buf,"cx:%08X",temp_head[2]);
  20.                 Gui_DrawFont_GBK16(5,80,RED,BLACK,cx_buf);
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表