微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求助关于STM32串口接收LCD显示的问题

求助关于STM32串口接收LCD显示的问题

时间:10-02 整理:3721RD 点击:
        while(1)
        {
                for(i=0;i<target_cnt;i++)
                {
                        //直接显示变量
                        Gui_DrawFont_num_u16(32,40+i*16,BLACK,WHITE,3,X_position[i]);
                        Gui_DrawFont_num_u16(64,40+i*16,BLACK,WHITE,3,Y_position[i]);
//                        Gui_DrawFont_GBK16(152,16,BLACK,WHITE,"+");
                        //传感器坐标X
                        Gui_DrawFont_num_u16(112,16,BLACK,WHITE,1,Xtem/100);
                        Gui_DrawFont_num_u16(120,16,BLACK,WHITE,1,Xtem/10%10);
                        Gui_DrawFont_num_u16(136,16,BLACK,WHITE,1,Xtem%10);
                        //传感器坐标Y
                        Gui_DrawFont_num_u16(160,16,BLACK,WHITE,1,Ytem/100);
                        Gui_DrawFont_num_u16(168,16,BLACK,WHITE,1,Ytem/10%10);
                        Gui_DrawFont_num_u16(184,16,BLACK,WHITE,1,Ytem%10);
                }
                        ms_delay(100);
        }
这是我main函数的while部分,注释掉的那行显示正负号的代码在那个位置就不显示,但放在while外就能显示,可这个正负号是跟每一个X_position[i]都有关系的,想问一下如何解决

显示区域计算错了吧,需要说明函数中参数的意义是什么,光看函数,并不好分析

/**************************************************************************************
函数定义:void Gui_DrawFont_num_u16(u16 x, u16 y, u16 fc, u16 bc, u8 num, u16 data)
功能描述: 在屏幕显示16位的整数变量
输    入: u16 x,y 打印的坐标 u16 fc  字体颜色 u16 bc  背景颜色  u16 num  变量位数  u16  变量值
输    出: 无
**************************************************************************************/
GBK16那个就是输出标准的16X16点阵字符

  Gui_DrawFont_GBK16(152,16,BLACK,WHITE,"+")
Gui_DrawFont_num_u16(160,16,BLACK,WHITE,1,Ytem/100);;
一个是152,一个是160,会不会被覆盖,另外说明一下x,y坐标于文字显示方向的关系

这个问题我绕过去了,应该是初始化屏幕的时候调用了另外的显示函数,然后显示不出来,我不用那个函数就可以了

其实STM32应该是可以在线仿真的,所以应该可以一步一步看运行状态,来判断问题原因的。
也可以试试在每个显示之间加1、2秒的延时,可以看看是没显示,还是被覆盖了

放在while外是指初始化程序吧!初始化程序是只执行一次的。放在while里,不显示,有可能是执行了多次,把那位置给刷掉了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top