关于LCD1602显示,真的搞不懂自己到底哪儿不对

2019-08-14 17:21发布

感觉没有错的地方啊,可是它为什么就没有显示呢?这个学起来真的好难啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
3314lzp
1楼-- · 2019-08-16 14:50
夜妖壹号 发表于 2017-8-7 22:32
这是我写的用LCD1602显示电压电流及功率因数的程序,程序内容比较多,如果有耐心就慢慢看吧,相信会对你 ...

谢谢大神~~~
jiangyy
2楼-- · 2019-08-16 20:46
        GPIO_InitTypeDef  GPIO_InitStructure;
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOC, ENABLE);         //使能PA,PC端口时钟
         
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2;                                 //LCD1602的三根控制线rs,rw,en
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;        //IO口速度为100MHz
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//不上下拉
        GPIO_Init(GPIOC, &GPIO_InitStructure);//根据设定参数初始化GPIOC                                         
   
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;//LCD1602的8跟数据线
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//不上下拉
       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//IO口速度为100MHz
       GPIO_Init(GPIOA, &GPIO_InitStructure);//根据设定参数初始化GPIOA
我是新手,用的是探索者开发板,我想问问帅哥们,对于PA,PC的I/O口是否需要上拉?下拉?还是不上下拉?
cromarti
3楼-- · 2019-08-17 00:25
LCD_D=dat<<8;
3314lzp
4楼-- · 2019-08-17 03:07
 精彩回答 2  元偷偷看……
3314lzp
5楼-- · 2019-08-17 07:09
问题已经解决了,总结了一下我的问题:
(1)stm32驱动1602的话,首先电源要接5V,否则字体会很模糊。
(2)stm32由于时钟频率很高,所以写操作使能时,中间必须使用延时函数。
(3)忙检测函数有问题,但我还没有发现具体是哪儿的问题,所以索性注释掉了,对正常显示没有影响。
(4)因为板子上的1602接口连接的是GPIOB的8~15端口,就必须对命令或数据进行移位。
         为避免因此产生错误,我用杜邦线将D0~7接在了GPIOA的低八位。
3314lzp
6楼-- · 2019-08-17 12:26
jiangyy 发表于 2017-8-8 11:53
GPIO_InitTypeDef  GPIO_InitStructure;
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|R ...

不清楚,我也很疑惑。只知道端口复用一般需要上拉输入

一周热门 更多>