完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
void Busy_Wait(void) //检测液晶忙状态
{ Reset_RS(); //rs=0 Set_RW(); //rw=1 建立高低电平需要延时吗?多久 Set_E(); //en=1 delay_ms(1); //延时1ms 72Mhz while(PCout(11) == 1) //检测数据口D7,判断忙状态 需要检测数据吗?还是直接延时就可以,原理图里的是5V是3.3V工作? { Reset_E(); //en=0 delay_ms(1); Set_E(); //en=1 重复使能失能使得D7口为0,不忙(感觉这个不一定需要,试了也不行) delay_ms(1); } delay_ms(5); Reset_E(); //en=0 } void Write_Cmd(uint8_t Cmd) //写指令 { Busy_Wait(); //判断液晶忙状态 Reset_RS(); Reset_RW(); Reset_E(); // //下面是数据口的配置,这个数据口配置该怎么写?我写的是类似ODR(BRR)形式 // GPIO_WriteBit(GPIOC,GPIO_Pin_11,(BitAction)((Cmd&0x80)>>7));//D7 // GPIO_WriteBit(GPIOC,GPIO_Pin_12,(BitAction)((Cmd&0x40)>>6)); //D6 // GPIO_WriteBit(GPIOD,GPIO_Pin_2,(BitAction)((Cmd&0x20)>>5)); //D5 //GPIO_WriteBit(GPIOB,GPIO_Pin_3,(BitAction)((Cmd&0x10)>>4)); //D4 //GPIO_WriteBit(GPIOB,GPIO_Pin_4,(BitAction)((Cmd&0x08)>>3)); //D3 //GPIO_WriteBit(GPIOB,GPIO_Pin_5,(BitAction)((Cmd&0x04)>>2)); //D2 //GPIO_WriteBit(GPIOB,GPIO_Pin_6,(BitAction)((Cmd&0x02)>>1)); //D1 //GPIO_WriteBit(GPIOB,GPIO_Pin_7,(BitAction)((Cmd&0x01))); //D0 Set_E(); delay_ms(1); // 高脉冲 该延时多久,1ms够不?还是多了? Reset_E(); // }
|
|
相关推荐
1个回答
|
|
|
在程序 上慢慢调整
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
919 浏览 0 评论
797 浏览 0 评论
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
4560 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
3369 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2672 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-11 04:50 , Processed in 1.009746 second(s), Total 74, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3484