[PIC®/AVR®/dsPIC®产品] 【CuriosityNano测评报告】03.曲折的LCD驱动过程

[复制链接]
2533|23
 楼主| hu9jj 发表于 2021-3-27 13:06 | 显示全部楼层 |阅读模式
    本次驱动的是一块192*64点阵LCD屏,代码是从其他项目移植过来的,按理最多只需要调整写操作的延时就行的,所以编译下载后LCD屏幕毫无反映也在我的意料之中。为了延时更准确,我没有用常规的FOR循环,而是换用了MCC配置器中的DELAY_microseconds()函数,配合逻辑分析仪抓取的时序,将写操作的时钟控制在数据手册范围(如下图):


    可尽管时序比较规范,但LCD显示屏却没有显示出正确字符,粗看上去象花屏一般:


    反复检查代码和修改测试都没有解决问题,顿时有措手无策的感觉,后来经过仔细观察,发现屏幕上全屏显示出的是杂乱无章的字符,也就是说字符显示函数是基本正确的,只是调用部分出了问题:


    此时才回忆起原来在测试Atmega4809和AVR128DA48现款AVR评估板时也遇到过相同的问题,也就是数组指针的传递问题。 我在调用时是将要显示的字符作为数组传递到显示函数中,代码如下:
LCD_write_BG(4,0,(uint8_t *)"Microchip AVR128DB48核心板");
    在显示函数中接收这些参数:
void LCD_write_BG(uint8_t X,uint8_t Y,uint8_t *stru)
    这在其他类型的单片机中使用没有发现过问题,但不知何故在AVR单片机中却不行。


    找到原因后,我只好改写代码,每次仅显示一个字符,硬生生地将原本的一行代码拆解成N行:


    通过拆解之后,屏幕上终于成功显示出了正确的字符:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
dql2015 发表于 2021-3-27 20:12 | 显示全部楼层
赞一个
hudi008 发表于 2021-4-1 21:28 | 显示全部楼层
OLED的使用-4线SPI驱动  
lzmm 发表于 2021-4-1 21:28 | 显示全部楼层
可以用spi或者iic   
minzisc 发表于 2021-4-1 21:29 | 显示全部楼层
SPI驱动OLED 12864   
selongli 发表于 2021-4-1 21:29 | 显示全部楼层
            
fentianyou 发表于 2021-4-1 21:29 | 显示全部楼层
个型号的OLED的接口定义可以发出来么?
xiaoyaodz 发表于 2021-4-1 21:30 | 显示全部楼层
oled 0.96 spi i2c 哪个好  
febgxu 发表于 2021-4-1 21:30 | 显示全部楼层
谢谢楼主分享的资料了。   
sdlls 发表于 2021-4-1 21:31 | 显示全部楼层
控制oled怎样循环显示  
pixhw 发表于 2021-4-1 21:31 | 显示全部楼层
显存中的数据是怎么与oled点对应起来的
kkzz 发表于 2021-4-1 21:32 | 显示全部楼层
取模软件是哪个?
selongli 发表于 2021-4-1 21:32 | 显示全部楼层
谢谢楼主分享 的资料了。   
minzisc 发表于 2021-4-1 21:32 | 显示全部楼层
能用3线SPI的oled显示么
fentianyou 发表于 2021-4-1 21:32 | 显示全部楼层
可以根据接口pin脚识别接口方式?  
lzmm 发表于 2021-4-1 21:32 | 显示全部楼层
使用硬件SPI比用模拟SPI好  
xiaoyaodz 发表于 2021-4-1 21:32 | 显示全部楼层
采用的oled的显示屏
hudi008 发表于 2021-4-1 21:32 | 显示全部楼层
GPIO模拟SPI   
sdlls 发表于 2021-4-1 21:32 | 显示全部楼层
引脚必须有哪些功能  
febgxu 发表于 2021-4-1 21:32 | 显示全部楼层
跟着楼主多多学习了。   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:Microchip
简介:让我们来为您提供帮助。我们可提供各种资源来帮助您解决一切问题。是否需要与我们的客户支持团队联系?您可以通过电话、在线聊天功能或电子邮件与他们联系。

151

主题

1063

帖子

11

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