[STM32] 各位帮我看看12864为什么无法显示变量

[复制链接]
2870|8
 楼主| 大虾快来 发表于 2015-1-12 16:03 | 显示全部楼层 |阅读模式
程序在下面,其中cnt是我定义的变量,已经测试过cnt值是不断变化的,还有改程序显示固定值是没问题的
  1. u8 size=0;
  2. u8 disp1[]="00";

  3. int main(void)
  4. {
  5. size=sizeof(disp1);
  6. while(1)
  7.    {
  8. disp1[0]=cnt/10+48;        //得到cnt的十位
  9.   disp1[1]=cnt%10+48;         //得到cnt的个位
  10. wr_cmd(0x80+0x00);//写命令
  11.    wr_dat(disp1[0]);//写数据
  12.    wr_dat(disp1[1]);//写数据
  13.    delay_ms(5);
  14.    }
  15. }
雪驹 发表于 2015-1-12 16:12 | 显示全部楼层
本帖最后由 雪驹 于 2015-1-12 16:16 编辑

显示的是字符或字符串,要经过转换的,比如1,显示就是1+0x30
你应该先建一个函数用来显示字符串void display(*char),然后 display(disp1)
yimankehao 发表于 2015-1-12 16:35 | 显示全部楼层
雪驹 发表于 2015-1-12 16:12
显示的是字符或字符串,要经过转换的,比如1,显示就是1+0x30
你应该先建一个函数用来显示字符串void disp ...

它的程序后面已经加了48了,十进制的48就是16进制的0X30
yimankehao 发表于 2015-1-12 16:36 | 显示全部楼层
首先你要知道你的cnt变化的频率是多少?才能确定LCD是否能及时显示。
ayb_ice 发表于 2015-1-12 17:06 | 显示全部楼层
先送个ASCII码试试,再试变量
 楼主| 大虾快来 发表于 2015-1-12 17:20 | 显示全部楼层
yimankehao 发表于 2015-1-12 16:36
首先你要知道你的cnt变化的频率是多少?才能确定LCD是否能及时显示。

cnt在我的程序里其实是红外对射器的计数值,挡一下红外对射器就会加1,然后我是用状态机来做的,扫描频率是360000Hz,扫面频率是快了点,可是cnt的变化频率肯定是很慢的
yimankehao 发表于 2015-1-12 22:43 | 显示全部楼层
大虾快来 发表于 2015-1-12 17:20
cnt在我的程序里其实是红外对射器的计数值,挡一下红外对射器就会加1,然后我是用状态机来做的,扫描频率 ...

你可以把把个位和十位单独定义看下效果。不要用DISP1[]这样定义。
原野之狼 发表于 2015-1-13 08:37 | 显示全部楼层
目测  还是检查下LCD的驱动吧
梦在那 发表于 2015-10-10 19:50 | 显示全部楼层
这个应该你每次显示完后要把这一位给清楚了,再重新赋值吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

15

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部