OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 102|回复: 1

为什么我串口3发送了信息后LCD就不能更新了?

[复制链接]

36

主题

99

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2022-4-8
在线时间
82 小时
发表于 2023-9-29 01:40:15 | 显示全部楼层 |阅读模式
25金钱
下面是我串口3的代码:
  1. //串口3,printf 函数
  2. //确保一次发送数据不超过USART3_MAX_SEND_LEN字节
  3. void u3_printf(char* fmt,...)  
  4. {  
  5.         u16 i,j;
  6.         va_list ap;
  7.         va_start(ap,fmt);
  8.         vsprintf((char*)USART3_TX_BUF,fmt,ap);
  9.         va_end(ap);
  10.         i=strlen((const char*)USART3_TX_BUF);                //此次发送数据的长度
  11.         //printf("需要发送的信息:%s", USART3_TX_BUF);
  12.         for(j=0;j<i;j++)                                                        //循环发送数据
  13.         {
  14.                 while((USART3->SR&0X40)==0);                        //循环发送,直到发送完毕   
  15.                 USART3->DR=USART3_TX_BUF[j];  
  16.         }
  17.         while(__HAL_UART_GET_FLAG(&UART3_Handler,USART_FLAG_TXE)==RESET); //等待发送完成
  18.         //USART3_TX_BUF=NULL;
  19. }
复制代码
在main中的代码:
  1. u3_printf("%s\r\n", "Hello");
  2.         delay_ms(500);
  3.         //u3EmptyRecv(); //清空串口3缓存
  4.         while(1){
  5.                 t++;
  6.                 printf("%d\r\n", t);
  7.                 longToStr(t ,(char*)time1, 5, 0); //long转换成字符串
  8.                 drawStr(50, 50, time1,16, WHITE, BLACK); //显示t的值到LCD屏幕
  9.                 delay_ms(1000);
  10.         }
复制代码


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

36

主题

99

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2022-4-8
在线时间
82 小时
 楼主| 发表于 2023-9-29 01:45:15 | 显示全部楼层
就是那句“drawStr”(在LCD上显示)的代码没有任何效果,但在其他地方能正常运行
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 15:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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