OpenEdv-开源电子网

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

串口接收数据并在LCD屏幕上显示

[复制链接]

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2017-10-14
在线时间
20 小时
发表于 2018-5-30 20:33:06 | 显示全部楼层 |阅读模式
通过串口接收数据,一般会将数据保存在定义的寄存器USART_RX_BUF中,现在我想将存贮的数据在LCD屏幕上显示出来,请问具体该如何操作,本来以为就是利用LCDString直接操作就行,发现想的太简单了。新人小白  求指教  感激不尽
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

105

主题

522

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1386
金钱
1386
注册时间
2012-10-23
在线时间
97 小时
发表于 2018-5-31 09:08:44 | 显示全部楼层

回帖奖励 +3 金钱

就是这么简单
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
金钱
345
注册时间
2017-10-23
在线时间
72 小时
发表于 2018-5-31 10:40:31 | 显示全部楼层
串口要发送  ascii
回复 支持 反对

使用道具 举报

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2017-10-14
在线时间
20 小时
 楼主| 发表于 2018-5-31 10:46:40 | 显示全部楼层

确实就是这么简单, 尝试了一下,
LCD_ShowString(30,110,200,16,16,Save_Data.GPS_Buffer);
LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK")
显示的内容不加双引号相当于一个地址指针,显示的就是该地址指针指示的寄存器中的内容,加双引号的话显示的就是引号中的内容
我是这样理解的  不知道对不对  请指教
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-2-21
在线时间
9 小时
发表于 2019-2-26 09:50:26 | 显示全部楼层
红线绕指柔 发表于 2018-5-31 10:46
确实就是这么简单, 尝试了一下,
LCD_ShowString(30,110,200,16,16,Save_Data.GPS_Buffer);
LCD_ShowS ...

怎么简单啊,老铁,能讲讲思路吗
回复 支持 反对

使用道具 举报

6

主题

359

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1604
金钱
1604
注册时间
2017-12-18
在线时间
173 小时
发表于 2019-2-27 14:21:20 | 显示全部楼层
帮顶一下
回复 支持 反对

使用道具 举报

21

主题

211

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1423
金钱
1423
注册时间
2016-8-3
在线时间
576 小时
发表于 2019-2-27 14:59:07 | 显示全部楼层
使用sprintf函数,把串口收到的数据转换成字符串,LCD显示字符串就可以了
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-8-22
在线时间
4 小时
发表于 2019-8-29 11:32:16 | 显示全部楼层
同学 你搞定了吗 我有个问题想请教以下
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2019-9-5
在线时间
21 小时
发表于 2019-11-14 14:52:20 | 显示全部楼层
学习一个
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2020-6-19
在线时间
3 小时
发表于 2020-7-2 17:36:03 | 显示全部楼层
红线绕指柔 发表于 2018-5-31 10:46
确实就是这么简单, 尝试了一下,
LCD_ShowString(30,110,200,16,16,Save_Data.GPS_Buffer);
LCD_ShowS ...

老哥 我为啥显示不出来啊  我是这么写的 LCD_ShowString(10,10,260,32,32,USART_RX_BUF[2]);  有什么问题吗
回复 支持 反对

使用道具 举报

3

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2020-9-30
在线时间
22 小时
发表于 2020-12-15 20:22:22 | 显示全部楼层
我搞定了 在中断回调函数里面加以下代码就可以了
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) //接收完成中断回调函数,这里设置的是每次接收一个就中断一次。
{
          
                if(huart->Instance==USART3)
                {   
                                 arry[i]=*((huart->pRxBuffPtr)-1); //因为buff只有一个位置,所以我们每次都要让指针退回一格,回到原来的位置好让下次用。
                                       
                                 HAL_UART_Transmit(&usart3_handler,&arry[i],1,1000);
                       
                           if(arry[i]=='\n')
                                {   
                                        LCD_ShowString(10,150,260,36,32,"Received date is");
                                                        for (j=0;j<i*15;)
                                                        {
                                                         LCD_ShowString(10+j,180+k,570,16,16,&arry[j]);
                                                                j=j+15;
                                                       
                                                        }
                  k=k+25;
                                          
                                               
                                                        if(k>=850)
                                                        {
                                                           LCD_Clear(WHITE);
                                                                 k=0;
                                                        }
                                                         i=-1;
                                }
                         i++;
              
                }
       
}
回复 支持 反对

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2021-3-20
在线时间
13 小时
发表于 2021-3-26 17:54:07 | 显示全部楼层
Jerry99 发表于 2020-7-2 17:36
老哥 我为啥显示不出来啊  我是这么写的 LCD_ShowString(10,10,260,32,32,USART_RX_BUF[2]);  有什么问题 ...

有进展了吗
回复 支持 反对

使用道具 举报

2

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2020-11-14
在线时间
12 小时
发表于 2021-3-29 09:06:07 | 显示全部楼层
怎么突然就没消息了....
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-26 08:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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