STM32串口接收数据显示到LCD上,初学者求高手指点
时间:10-02
整理:3721RD
点击:
STM32串口接收数据显示到LCD上,调试半天仍然搞不出来
用的原子的战舰开发板,各配置都配置完成,中断也OK,但是我觉得是我程序逻辑有问题,但找不到突破口,可能对串口理解不够透彻。
如果有现成例子的话可以发给我作为参考更好。
主函数里的逻辑区
各初始化函数,各变量定义就不贴了;
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;
printf("\r\nRECEIVE DATA:\r\n\r\n");
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//?ò′??ú1·¢?íêy?Y
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//μè′y·¢?í?áê?
}
sprintf((char*)tmp,"RECEIVE=%d",USART_ReceiveData(USART1));
LCD_ShowString(60,100,200,16,16,tmp);
printf("\r\n\r\n"); //2?è???DD
USART_RX_STA=0;
}
}
用的原子的战舰开发板,各配置都配置完成,中断也OK,但是我觉得是我程序逻辑有问题,但找不到突破口,可能对串口理解不够透彻。
如果有现成例子的话可以发给我作为参考更好。
主函数里的逻辑区
各初始化函数,各变量定义就不贴了;
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;
printf("\r\nRECEIVE DATA:\r\n\r\n");
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//?ò′??ú1·¢?íêy?Y
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//μè′y·¢?í?áê?
}
sprintf((char*)tmp,"RECEIVE=%d",USART_ReceiveData(USART1));
LCD_ShowString(60,100,200,16,16,tmp);
printf("\r\n\r\n"); //2?è???DD
USART_RX_STA=0;
}
}
buf里的东西是整体自主发送的,不是一位位发的。
发送与接收隔开来比较好
我感觉那个数据接收放到buf里,然后一位位传到SD,stm32会自己发送的,不用用send_data()函数。
lcd 读取的时候一位位过来,怎么还原为字符?
哦了,谢谢了。已经搞定了。对这个也有了解了。
请问小编,如果我准备用232串口将传感器的数据显示到开发板,再显示到LCD上,需要用到SD卡吗?
不需要的。传感器的数据直接通过232发送到LCD显示就可以了
谢谢赐教,我试试编程看行不行
小编我现在能在显示屏上显示字符了,,也完成了从232口传输数据,但还是不清楚怎么将从232口传来的数据显示到显示屏上,不知可否将程序发给小弟参考一下,我将万分感激
我用的usart串口
传感器的数据直接通过232发送到LCD显示就可以了
菜鸟不知“各初始化函数,各变量定义”在哪里找得到,请求支援,急用
自己写啊,或者找找别人的开发板资料里的直接拿来用
现在我也在搞下串口接收数据在lcd显示的,小编能分享下程序的麽?
源代码已经没有了,这个应该比较简单的,多看看例程就会了
请问小编你是怎么解决的?我的程序是接收到后如果接收的字符比上次接收的短,后面几位还是会在,没有消失,这个该怎么解决?
小编,您是怎么把串口读出来的数据在屏幕上显示出来的,具体思路能说下嘛