Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
I2C_IIC
国民技术_N32G45x
OLED显示屏
【N32G457 】使用i2c点亮oled屏幕
发布于 2022-03-19 17:45:48 浏览:1502
订阅该版
首先要保证在添加测试代码前的工程能正常运行,然后按如下步骤操作: - 添加u8g2库 直接打开工程下的RT-Thread Settings文件,此时有两种办法可以添加u8g2库。 1. 这里是列表文本在软件包中心栏目下点击“立即添加”按钮,在弹出的软件包中心界面检索u8g2,检索结果有两个,添加第一个即可。 ![image.png](https://oss-club.rt-thread.org/uploads/20220319/4e88d89fef7f4aea6e65943bd66a6209.png.webp) 2. 在“drivers”栏目点击“更多配置”或者点击右边的箭头,在切换的详细页中选中“软件包”界面,找到”multimedia packages“并展开,然后选中u8g2,这里选中的是老版本而非官方版本,两种的区别请自行测试。 ![image.png](https://oss-club.rt-thread.org/uploads/20220319/cb185e4b7a0ccb991a033593fea93209.png.webp) - 配置u8g2和i2c 这里就直接上图了,按下图的配置,例程可以直接运行。 1. u8g2的配置 ![image.png](https://oss-club.rt-thread.org/uploads/20220319/171ac032862afeb8faae662ca14418f2.png.webp) 2. i2c的配置 这里注意需要修改默认的i2c引脚,国民技术N32G-45XVL-STB开发板i2c1的scl和sda默认引脚为PB6和PB7,因此scl改为58,sda改为59。 (这里有个涉及pin脚的细节需要注意,详见文末pin脚说明) ![image.png](https://oss-club.rt-thread.org/uploads/20220319/f7b4845af763fd0934e2d1ef92da87b6.png) 上述两个配置完成之后,组件页面的i2c驱动选项也自动选中了。 ![image.png](https://oss-club.rt-thread.org/uploads/20220319/15a56aefda4829c39263d8c206d552fa.png) 在settings页面点击保存(或Ctrl+s),将自动更新项目,将u8g2库源码和例程,以及i2c相关的宏打开。 更新完成之后可以在项目管理器中看到u8g2已经配添加到项目中,并且测试例程注册到命令行中。 ![image.png](https://oss-club.rt-thread.org/uploads/20220319/a9d0f101d2bca56eee22f24e61d0444e.png.webp) - 编译与下载 这没啥好说的,需要注意的是我们使用的是i2c驱动屏幕,因此需要将u8g2_port.h文件下的“#include
”屏蔽,否则编译会报没有该文件的错误。编译完成后下载即可。 - 测试 例程中默认打开了finsh命令功能,可以直接使用串口执行测试例程。连接上开发板对应的串口(115200 8N1)之后,重启开发板,可以看到rt-thread的开机打印。 输入help列出所支持的指令,可以看到前面注册的例程指令。 执行指令“ssd1306_12864_hw_i2c_example”,稍等片刻,即可看到oled屏幕出现例程中设定的图案和文字。 ![image.png](https://oss-club.rt-thread.org/uploads/20220319/6ba8faa0d953db49dec7c9ae75a7b1b5.png) ![image.png](https://oss-club.rt-thread.org/uploads/20220319/824f27be51811f44c9df63238145272f.png.webp) - pin脚说明 国民技术N32G-45XVL-STB开发板使用的是100pin的芯片(N32G45XVL),但是rt-thread官方例程按64pin芯片(N32G45XRL)测试的。 在本次测试中使用的i2c1信号在不同封装下pin脚不同(但都是PB6和PB7),100pin封装下scl和sdc对应的pin脚序号分别为92和93,64pin封装下对应的pin脚序号是58和59。上述信息参考《UM_N32G45x系列用户手册V2.0.0.pdf》以及项目文件"Libraries\rt_drivers\drv_gpio.c"。 ![image.png](https://oss-club.rt-thread.org/uploads/20220319/268c8d2b8068df63c113d69f4b5482ea.png.webp) 如果不修改项目(即按64pin封装定义),则按上述流程即可跑通例程。 如果要更正为100pin,需要修改两个地方: 1. Libraries\rt_drivers\drv_gpio.c文件下的N32F10X_PIN_NUMBERS宏定义要修改为100。 ![image.png](https://oss-club.rt-thread.org/uploads/20220319/c36bc7b6bb65bf05f57bde9462aafcd4.png) 2. rtconfg.h文件下的i2c1 scl和sda管脚要修改为92和93(这里必须吐槽一下,虽然在settings界面下可配置scl和sda为92和93,但是实际不能更新到代码中,因为对话框有规则限制最大值只能为64,大于64的值被忽略,因此需要手动修改rtconfig.h文件) ![image.png](https://oss-club.rt-thread.org/uploads/20220319/c36e59e96450ec1461789a20426ac5c5.png) 注意更改为100pin之后,led对应的序号也发生变更,需要更新序号,否则例程中的led闪烁将不能有效执行。 - 其他问题 1. 虽然例程名称看起来使用了硬件i2c,但是实际上使用的依然是gpio模拟的i2c。 2. 我这个小oeld屏幕右边固定会有两列像素不能控制,而且左边显示缺了一列,屏的资料翻不到了,就不去定位问题了。
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
子期非女
这家伙很懒,什么也没写!
文章
3
回答
0
被采纳
0
关注TA
发私信
相关文章
1
NXP的I2C应该比ST的好用吧
2
Use of I2C device driver
3
关于I2C 驱动问题请教
4
我如何知道这个iic的io配置和我电路设计的是一致的?
5
I2C模拟读操作失败,不知道问什么进不去读函数
6
RTT的I2C有官方文档资料没有
7
求 STM32F103 IIC 自定义IO初始化 代码
8
报一个LPC4008代码中I2C的bug
9
RTOS IIC总线使用
10
关于在RTT中使用STM32 I2C的疑问
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
SFUD
msh
ulog
C++_cpp
MicroPython
本月问答贡献
三世执戟
5
个答案
1
次被采纳
RTT_逍遥
4
个答案
1
次被采纳
KunYi
4
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
JonasWen
1
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
3
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部