找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1242|回复: 1
收起左侧

IAR For STM8调用子函数后LCD1602显示异常

[复制链接]
回帖奖励 10 黑币 回复本帖可获得 2 黑币奖励! 每人限 1 次(中奖概率 80%)
ID:275894 发表于 2019-8-31 13:10 | 显示全部楼层 |阅读模式
有一个LCD1602显示的问题,困扰了好几天,检查过时序,检查过延时,也检查过IAR配置,都没有问题。
一直找不到解决办法,不知有谁遇到过类似的现象没?
如果有,麻烦指点一下迷津,谢谢。
具体问题如下:

1)将LCD1602 写指令/写数据以一个子函数单独写进一个名为LCD1602.c的文件里;

2)在工程文件里将其加入到Sub_funtion子目录下

3)在LCD1602.c中创建一个LCD1602_DIS_CHAR()的子函数


4)在主函数中直接调用LCD1602_DIS_CHAR(),比如在LCD1602的第一行第一列显示字符'M',第二行第二列显示字符'X',
实际显示结果如下:



5)同样的配置,在LCD1602.c中新建一个名为show_X_M()的子函数,再在主函数中直接调用show_X_M()函数,则显示正常

这意味着,所有用LCD1602显示的指令(字符,数据等)必须写到LCD1602.c的子函数里面,再在主函数中调用该子函数才能保证LCD1602显示正常。
但如果用LCD1602显示IIC或者SPI等传递的数据,意味着这些协议也得写进LCD1602.c里面。导致程序失去了模块化的意义,不方便检查和调试。

图片中为对应步骤的截图
1.png

example13.4.8.rar

477.36 KB, 下载次数: 3

回复

使用道具 举报

ID:275894 发表于 2019-10-12 09:07 | 显示全部楼层
问题已经解决,调用各个子函数需要事先编写头文件,并将子函数内的函数名在头文件内声明
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表