OpenEdv-开源电子网

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

MINI板 LCD 如何显示有空格换行(\r\n)后面的内容?

[复制链接]

3

主题

16

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2017-9-13
在线时间
8 小时
发表于 2017-10-19 13:04:58 | 显示全部楼层 |阅读模式
5金钱
if(send_update == 1)  //说明目前串口正在接收数据,不要读缓冲区数据
                {
                        send_lock=1;     //开自锁标志
                        ++send_cnt;    //只要有数据接收,send_cnt每次都被串口中断清零
                        if(send_cnt>cnt_send)   //延时一段时间,确认缓冲区没有继续接受数据
                        {
                                send_cnt=0;
                                send_update=0;  
                        }
                }
                else
                {
                        if(send_lock==1)    //在数据已经接收完毕,并且还没有处理过数据的情况下
                        {
                                send_lock = 0;
                               
                                len=USART_RX_STA&0x3fff;                                                        //得到此次接收到的数据长度
                                //printf("\r\n您发送的消息为:\r\n");
                                /************************************************************************************************************/
                                for(i=0;i<200;i++)                                                        //清除原来数据
                                {
                                         data=0x20;//每一个字节都是空格
                                         //data=0x40;//每一个字节都是空格
                                }
                                LCD_ShowString(8,50,216,64,16,data);
                                /************************************************************************************************************/
                                for(j=0;j<len;j++)
                                {
                                        data[j]=USART_RX_BUF[j];//把收到数据放到word里
                                }
                               
                                for(t=0;t<len;t++)
                                {
                                        USART1->DR=USART_RX_BUF[t];
                                        while((USART1->SR&0X40)==0);                                //等待发送结束
                                       
                                }
                                printf("\r\n\r\n");                                                                //插入换行
                                USART_RX_STA=0;
                               
                                //LCD_Clear(WHITE);  //清屏
                                LCD_ShowString(8,50,216,64,16,data);                    //显示接受内容
                                //比如说我现在接收到的ASCII码内容   :acd
                                                                                       efd
                                                                                       red
                                //现在只能显示acd第一行
                                //单片机是全部接收到的,因为我串口助手返回接收到的数据是正确的
                                //求助怎么显示多行呢
                               
                                for(t=0;t<200;t++)
                                {
                                        USART_RX_BUF[t] = 0;
                                }               
                        }

最佳答案

查看完整内容[请看2#楼]

解决了,想了一个笨方法,我检测接收的数据中有没有换行符,有的话换新行显示,接下去继续检测
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2017-9-13
在线时间
8 小时
 楼主| 发表于 2017-10-19 13:04:59 | 显示全部楼层
解决了,想了一个笨方法,我检测接收的数据中有没有换行符,有的话换新行显示,接下去继续检测
回复

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2017-9-13
在线时间
8 小时
 楼主| 发表于 2017-10-19 13:18:23 | 显示全部楼层
显示内容

串口助手

串口助手

显示屏

显示屏
回复

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2017-9-13
在线时间
8 小时
 楼主| 发表于 2017-10-19 14:02:06 | 显示全部楼层
顶啊  求大神江湖救救急~~~
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 05:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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