OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 15300|回复: 29

使用I2C驱动LCD1602屏幕 附件STM32F103源码

[复制链接]

1

主题

12

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2060
金钱
2060
注册时间
2020-2-16
在线时间
34 小时
发表于 2020-3-3 23:28:17 | 显示全部楼层 |阅读模式
本帖最后由 不念不将就 于 2020-4-28 18:31 编辑

由于LCD1602驱动时,需要引脚过多,占用资源过多,所以采用PCF8574芯片作为媒介,通过I2C即可轻松控制LCD1602
模块准备:LCD1602屏幕一块、PCF8574扩展板一块
主控:STM32F103C8T6
部分代码展示,详情请下载,由于本人编写,吃过注释少看不懂的苦,所以注释十分详细
欢迎回帖交流,不做伸手党!!!
***如果有误,欢迎指正***
修改日志
2020-04-28        修复第一个字符不显示问题        (LCD1602_I2C_DISPLAY_STRING中Y的初始值应为0)附件包已更新

PCF8574扩展板

PCF8574扩展板

效果展示

效果展示

部分代码

部分代码

部分代码

部分代码

部分代码

部分代码

LCD1602_I2C驱动示例(2020-04-28).zip

5.09 MB, 下载次数: 807

STM32F103源码

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

5562

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10541
金钱
10541
注册时间
2017-2-18
在线时间
1908 小时
发表于 2020-3-4 15:17:42 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2020-3-18
在线时间
4 小时
发表于 2020-3-19 09:43:50 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2020-3-22
在线时间
6 小时
发表于 2020-3-22 16:27:25 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2020-3-26
在线时间
46 小时
发表于 2020-4-18 21:44:01 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2020-3-4
在线时间
10 小时
发表于 2020-4-20 15:00:59 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2020-3-4
在线时间
10 小时
发表于 2020-4-24 21:41:52 | 显示全部楼层
兄弟很感谢你的分享,想问一下你的这个程序为啥每行只显示15个字符??
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2060
金钱
2060
注册时间
2020-2-16
在线时间
34 小时
 楼主| 发表于 2020-4-28 18:37:19 | 显示全部楼层
R00kie丶 发表于 2020-4-24 21:41
兄弟很感谢你的分享,想问一下你的这个程序为啥每行只显示15个字符??

感谢问题回复,bug已经解决,本贴图片展示及附件包已更新,下载即可。
问题是因为LCD1602_I2C.c文件中的LCD1602_I2C_DISPLAY_STRING(u8 Y,u8* string)函数中,Y的初始值应该为0,因为第一行第一个字符的地址是0x80,在LCD1602_I2C_WRITE_COM(0x80+X);时,X应该传输为0。
欢迎下载调试,如果有其他bug,请积极回复交流
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2018-5-9
在线时间
38 小时
发表于 2020-5-6 11:56:21 | 显示全部楼层
感激不尽,谢谢分享
回复 支持 反对

使用道具 举报

0

主题

81

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
208
金钱
208
注册时间
2014-9-18
在线时间
21 小时
发表于 2020-5-10 15:16:44 | 显示全部楼层
谢谢楼主分享,学习学习!
回复 支持 反对

使用道具 举报

1

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2016-7-29
在线时间
14 小时
发表于 2020-5-15 13:45:24 | 显示全部楼层
感谢楼主!收藏试试。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2020-4-14
在线时间
7 小时
发表于 2020-5-31 15:48:27 | 显示全部楼层
楼主你的程序还是有BUG,第一行的的一个字符还是显示不正确,这是怎么回事啊
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2060
金钱
2060
注册时间
2020-2-16
在线时间
34 小时
 楼主| 发表于 2020-6-1 13:28:01 | 显示全部楼层
独孤清 发表于 2020-5-31 15:48
楼主你的程序还是有BUG,第一行的的一个字符还是显示不正确,这是怎么回事啊

这是我刚刚下载附件,测试的结果,没有问题。可以看一下,下图这个函数中的i初始值是不是0,之前我写成了1,会有问题。已经在附件里修改了
IMG_20200601_132122~1.jpg
捕获.JPG
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-5-30
在线时间
2 小时
发表于 2020-7-6 22:47:20 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2020-11-16
在线时间
4 小时
发表于 2020-11-18 15:14:24 | 显示全部楼层
感谢分享~
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2020-5-14
在线时间
7 小时
发表于 2020-12-17 22:07:10 | 显示全部楼层
你好,我看压缩文件和截图,一个接的是GPIO_Pin_10, GPIO_Pin_11,而截图用的是GPIO_Pin_6, GPIO_Pin_7,到底改如何连接针脚了?
回复 支持 反对

使用道具 举报

7

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2012-11-13
在线时间
11 小时
发表于 2021-2-25 10:59:04 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2060
金钱
2060
注册时间
2020-2-16
在线时间
34 小时
 楼主| 发表于 2021-3-2 14:19:19 | 显示全部楼层
xmcai123 发表于 2020-12-17 22:07
你好,我看压缩文件和截图,一个接的是GPIO_Pin_10, GPIO_Pin_11,而截图用的是GPIO_Pin_6, GPIO_Pin_7,到 ...

用的是I2C1,所以使用PB6和PB7,文件里用的也是PB6 PB7,只有I2C文件里注释,告诉你I2C2是PB10和PB11,实际没有用到PB10和PB11
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-10-28
在线时间
21 小时
发表于 2021-3-3 13:44:57 | 显示全部楼层
請問  我顯示不出來   是因為PCF8574"AT"    地址不一樣嗎  
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2060
金钱
2060
注册时间
2020-2-16
在线时间
34 小时
 楼主| 发表于 2021-3-16 19:48:04 | 显示全部楼层
本帖最后由 不念不将就 于 2021-3-16 19:56 编辑

怎么删除自己的评论
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2060
金钱
2060
注册时间
2020-2-16
在线时间
34 小时
 楼主| 发表于 2021-3-16 19:55:33 | 显示全部楼层
kevinhi 发表于 2021-3-3 13:44
請問  我顯示不出來   是因為PCF8574"AT"    地址不一樣嗎


我这个模块可以设置地址,这里默认地址0x27,你可以参照原理图看看,如果A0,A1,A2都是悬空,地址就是0x27,注意,I2C地址在发送的时候,地址向左移一位,在工程代码里LCD1602_I2C.h里有说明
IMG_20210316_194104_edit_265678176470396.jpg
Snipaste_2021-03-16_19-40-12.png
Snipaste_2021-03-16_19-43-36.png
回复 支持 反对

使用道具 举报

5

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2021-4-3
在线时间
41 小时
发表于 2021-4-29 23:41:47 | 显示全部楼层
请教楼主,这是硬件驱动吧,有人说时间长了程序会卡死不知真假。另外,这个跟at24c02共用要注意什么呢?
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2021-4-21
在线时间
5 小时
发表于 2021-5-3 15:20:02 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

61

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
416
金钱
416
注册时间
2021-5-1
在线时间
161 小时
发表于 2021-8-14 18:37:21 | 显示全部楼层
感谢楼主分享!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2020-10-8
在线时间
2 小时
发表于 2022-4-14 23:04:31 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2019-8-19
在线时间
21 小时
发表于 2022-4-19 19:40:04 | 显示全部楼层
好兄弟
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2022-1-8
在线时间
3 小时
发表于 2022-10-2 21:52:33 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2022-1-20
在线时间
3 小时
发表于 2022-10-17 09:12:31 | 显示全部楼层
感谢大佬,谢谢分享
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2022-11-18
在线时间
1 小时
发表于 2022-11-18 18:55:13 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2020-9-28
在线时间
14 小时
发表于 2023-5-31 09:18:00 | 显示全部楼层
谢谢 谢谢分享~~分享~~
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 06:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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