Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ssd1306
NXP MCXN236测评-硬件I2C
发布于 2024-07-05 00:37:28 浏览:258
订阅该版
[tocm] # 简介 本文主要基于NXP-FRDM-MCXN236实现硬件I2C 驱动SSD1306 实现屏幕显示 # 开发板及芯片介绍 开发板构成图如下: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240705/9f6f6554cbd8cdbc8cd618f7e77345f8.png.webp) 这里的audio codec 及模拟输入 输出口没有贴,这个比较遗憾呀 结构图如下 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240705/31d9bf3efb5959fb8a4e404984d14ce3.png.webp) # I2C 接口 下面重点关注下要介绍的硬件I2C 接口 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240705/bed20b3ba21e68c4aad643df06d662e9.png) 管脚复用关系的话使用官网的配置工具MCUXpresso Config Tools v15.1 ,比较方便,相关驱动代码可以自动生成, ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240705/31a3ee9c98233f55917a87f3a4b67920.png.webp) 这里通过配置可知,主要使用的硬件的LP_FLEXCOMM2 即I2C2 ,由于默认的config内只有I2C1 I2C0,所以需要增加I2C,在board/kconfig 文件中,按下面方式添加I2C2 ```c menuconfig BSP_USING_I2C config BSP_USING_I2C bool "Enable I2C" select RT_USING_I2C default y if BSP_USING_I2C config BSP_USING_I2C0 bool "Enable Flexcomm0 I2C" default y config BSP_USING_I2C1 bool "Enable Flexcomm1 I2C" default y config BSP_USING_I2C2 bool "Enable Flexcomm2 I2C" default y endif ``` 修改完成后,保存,使用scons --menuconfig 或者 scons --pyconfig 进行I2C 及I2C2 使能 drv_i2c.c 中相关代码都现成的 有I2C0 I2C1 I2C2 ,不需改动 IO_MUX 复选默认也选择了I2C 功能,这里也可以在board 中将MCUXpresso Config Tools 生成的配置代码进行再次配置,保证硬件I2C 功能开启 ```c /* PORT4_0 (pin P1) is configured as FC2_P0 */ PORT_SetPinMux(BOARD_INITDEBUG_UARTPINS_I2C2_SDA_PORT, BOARD_INITDEBUG_UARTPINS_I2C2_SDA_PIN, kPORT_MuxAlt2); PORT4->PCR[0] = ((PORT4->PCR[0] & /* Mask bits to zero which are setting */ (~(PORT_PCR_IBE_MASK))) /* Input Buffer Enable: Enables. */ | PORT_PCR_IBE(PCR_IBE_ibe1)); /* PORT4_1 (pin P2) is configured as FC2_P1 */ PORT_SetPinMux(BOARD_INITDEBUG_UARTPINS_I2C2_SCK_PORT, BOARD_INITDEBUG_UARTPINS_I2C2_SCK_PIN, kPORT_MuxAlt2); PORT4->PCR[1] = ((PORT4->PCR[1] & /* Mask bits to zero which are setting */ (~(PORT_PCR_IBE_MASK))) /* Input Buffer Enable: Enables. */ | PORT_PCR_IBE(PCR_IBE_ibe1)); ``` 配置完成后,在menuconfig 中使能I2C tools 功能,使用pkg-update 更新libirary 使用 scons --target=mdk5更新keil 工程,重新编译下载,编译过程中遇到报错 ![screenshot_b740f91fd13cf704f0711520e8bd438.png](https://oss-club.rt-thread.org/uploads/20240705/a1162ce20a47b832833c023bb7647702.png) 可以将配置中的-x assembler-with-cpp 进行删除就可解决,后来定位 print组件一开始未来进来导致,后续导入后,问题不复现 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240705/df4275208aa0532353774318905c6519.png) 配置完成后,上电可以看到I2C2 已经正确注册 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240705/cb8bcaa8ad1a05dfac2d62fda3bb87ce.png) #I2C 功能验证 这里使用手边的SSD1306 12864单色显示屏进行验证 pyconfig中使能SSD1306 库如下 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240705/a6412248cbe8ae475f4cb1a49c84c2a0.png.webp) 如上面的步骤进行使用pkg-update 更新libirary 使用 scons --target=mdk5更新keil 工程,导入SSD1306库 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240705/7c1624a16c6f48d71e5f818713a0e29e.png.webp) 两个ssd1306 头文件按上图将#include 及宏定义去掉 然后进行编译烧录 上电后,shell 里面输入ssd1306_TestAll 可以看到显示屏被驱动,循环进行显示 ![screenshot_37b999937914aa699ce389c25fd9a59.jpg](https://oss-club.rt-thread.org/uploads/20240705/d1e1a1024ea07b9d5ef7d5f0c2271242.jpg.webp) 接线方法参考上图进行连接,屏幕成功被驱动起来 使用板载的加速度计读取数据也能正常读取 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240705/b16936982ccedefd30b407d5a5198a06.png)
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
xinshuwei
这家伙很懒,什么也没写!
文章
8
回答
0
被采纳
0
关注TA
发私信
相关文章
1
v4.1.1 ENV里使能SSD1306,需要包含_ansi.h头文件。找不到
2
使用ssd1306遇到的问题
3
U8G2 软件包单色0.9寸OLED屏驱动在 RT-Thread 移植问题
4
U8G2 软件包单色1.3寸OLED屏驱动在 RT-Thread 移植问题
推荐文章
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
USB
DMA
文件系统
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
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
8
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
9
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
RTT_逍遥
3
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
4
次点赞
Ghost_Girls
1
篇文章
7
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部