Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
模拟IIC_I2C
八、恩智浦FRDM-MCX947上的 IIC(软件) 实践
发布于 2024-03-27 15:29:50 浏览:290
订阅该版
[tocm] # 八、恩智浦FRDM-MCX947上的 IIC(软件) 实践 ## 1、前言说明 ### 1.1 本章内容 本章通过ENV配置IIC(软件)实现。 ### 1.2模块介绍 RTT官网更为权威:[I2C总线设备 (rt-thread.org)](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/i2c/i2c) ### 1.3 软件开发 略。 ## 2、步骤说明 ### 2.1 新建工程 环境准备: 首先根据RT-thread文档步骤走:[NXP FRDM-MCXN947 (rt-thread.org)](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/quick-start/frdm_mcxn947/quick-start) * 需要安装 MDK-ARM 5.38 (或以上版本均可) * 下载最新的源码https://github.com/RT-Thread/rt-thread/ 找到frdm-mcxn947软件工程: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240327/e43b9e3d402b6ecbea3d64a80432d7b0.png) 建立工程IIC软件模拟测试工程命令为:frdm-mcxn947_IIC(simulate)SH1106。 通过一个OLED测试IIC(软件模拟) 准备工作: * 准备一片OLED物料,支持IIC通信方式。 * 查询OLED手册,找到屏幕分辨率与其控制芯片。本次使用分辨率:128*64,控制芯片为SH1106。 首次编译出现报错: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240327/45ebd573941c2410432a55a0a14c83a9.png) 在工程首页打开EVN工具更新一下工程。会提示缺失文件的软件包更新。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240327/ce5b59913e8ba358f3c15eb8079fd2b0.png.webp) 再次编译: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240327/ce25588cb1a7d2967da07b3f5a92fcdd.png.webp) 连接设备:下载代码,提示代码下载完成。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240327/042b4119286256772a5d66dd33947936.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240327/7dbd4a52f41af1d9210a0a946a6203f2.png.webp) 打卡终端助手:已经打印串口信息。“frdm-mcxn947”工程运行起来了!按下SW2按键输出 “sw pressed”。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240327/48046e669bb952fc83938842fddd79f5.png) ### 2.2 配置IIC(软件) 查看原理图与工程例程了解引脚的定义方式。可以看到: 原理图中例程 LED 引脚为:P0_10 ```c #define LEDB_PIN ((0*32)+10) ``` 原理图中例程按键引脚P0_23 ```C #define BUTTON_PIN ((0*32)+23) ``` ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240327/f961049204c09a22604a0ffda3185ee4.png.webp) 根据此方式需要定义模拟IIC引脚: P0_24、P0_25 进入ENV工具修改设备驱动如下: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240327/b6957bd4ce7985518f72d318f615c810.png.webp) 增加SH1106软件包。由于SSD1306、SH1106兼容所以直接使用SSD1306软件包测试。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240327/fc436a1e63fb0760803b443e5690cb35.png.webp) 确认后需要更新软件包并重新生成工程,如下指令。 ```bash pkgs --update scons --target=mdk5 ``` 编译工程报错。缺失头文件"_ansi.h"。 原因: _ansi.h 是 newlib 提供的头文件,Keil 环境可能没有提供该头文件。引入 _ansi.h 是为了使用 `_BEGIN_STD_C` 和 `_END_STD_C` 宏定义。 需要怎么做: 需要把头文件“ssd1306.h”和“ssd1306_tests.h”宏定义替换为: ``` _BEGIN_STD_C 替换为 #define _BEGIN_STD_C extern "C" { _END_STD_C 替换为 #define _END_STD_C } ``` 重新编译,编译成功! ## 代码验证 ### 3.1测试代码 输入测试指令 ```bash ssd1306_TestAll ``` ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240327/161ee550046696b5c45869f659f9a422.png) 可以看到,LOG,模拟IIC 已经创建。SCL 引脚为:0x18( 24 ) SDA引脚为: 0x19( 25 )。与ENV工具定义相同。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240327/bd2a7ece7970ab10eb03c7cec300dba6.png.webp) IIC(软件模拟)测试完成。 另:同时测试了硬件IIC ,硬件IIC刷新屏幕感官速度会快一些。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
印凯平
这家伙很懒,什么也没写!
文章
1
回答
0
被采纳
0
关注TA
发私信
相关文章
1
模拟IIC中 SCL 延时的问题
2
在RTT中增加IIC设备
3
rt-thread ov2640 模拟iic 初始化失败
4
模拟I2C使用,线程调度貌似有问题
5
RTT studio打开软件IIC加载不出来drive_iic.c文件
6
使用max30102软件包时出现线程断言错误
7
F407zgoled编译报错
8
stm32F103核心板使用IIC出现的问题
9
rt_thread IICunlock问题
10
使用sensor_lsm6dsm时,出现了传感器可以注册成功却无法读数的问题
推荐文章
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
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
a1012112796
20
个答案
3
次被采纳
张世争
11
个答案
3
次被采纳
踩姑娘的小蘑菇
7
个答案
3
次被采纳
rv666
9
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部