Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
N32L40XCL-STB 开发板模块评测任务大挑战之测试软件IIC
发布于 2023-04-26 15:39:27 浏览:299
订阅该版
[tocm] 前言:特别感谢RT-Thread和国民技术给我这次评测N32L40XCL-STB的机会,我测评的部分是软件IIC。 # 1. 测试环境 1. 开发板:N32L40XCL-STB V1.0 2. 开发环境:RT-Thread studio V2.2.6 3. RT-Thread版本:4.0.3 4. I2C外设资源:PB6--SCL PB7--SDA 5. 传感器:AHT10 # 2. IIC ## 2.1 简介 I2C(Inter Integrated Circuit)总线是 PHILIPS 公司开发的一种半双工、双向二线制同步串行总线。I2C 总线传输数据时只需两根信号线,一根是双向数据线 SDA,另一根是双向时钟线 SCL,过这两根线,所有与 I2C 总线兼容的设备都可以通过 I2C 总线彼此直接通信。功能框图如下: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230426/4190b7705934119d6a5b0c38dee0b6ba.png.webp) ## 2.2 主要特征 - 同一接口既可实现主机功能又可实现从机功能 - 是并行总线到 I2C 总线协议的转换器 - 支持 7 位和 10 位的地址模式和广播寻址 - 作为 I2C 主设备可以产生时钟、起始信号和停止信号 - 作为 I2C 从设备具有可编程的 I2C 地址检测、停止位检测的功能 # 3.新建工程 首先打开RT-Thread studio安装N32L40XCL开发板的支持包。点击安装,变成绿色的installed即可 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230426/dc8c66064f14a1caac590865dcdfad77.png.webp) 下面开始新建工程,点击由上角的文件-新建-RT-thread项目 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230426/c29608904767f8e66fb40c9d9679b733.png) # 4.编写测试程序 打开打开rt-thread settings,在硬件里面打开软件模拟IIC ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230426/5bfb5f1381313aac8b874f4515d51d2a.png) 添加AHT10的软件包,并打开Sensor框架,保存工程 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230426/7878ab46ed7d6d350a2345c2ed7b89c9.png.webp) ```c /* * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2023-04-21 28345 the first version */ // PB6--SCL PB7--SDA #include "aht10_sample.h" static rt_thread_t aht_10_thread = RT_NULL; float humidity, temperature; int rt_hw_aht10_port(void) { struct rt_sensor_config cfg; cfg.intf.dev_name = AHT10_I2C_BUS; cfg.intf.user_data = (void *)AHT10_I2C_ADDR; rt_hw_aht10_init("aht10", &cfg); return RT_EOK; } //INIT_ENV_EXPORT(rt_hw_aht10_port); //MSH_CMD_EXPORT(rt_hw_aht10_port,rt_hw_aht10_port); static void aht10_thread_entry(void *parameter) { aht10_device_t dev; rt_hw_aht10_port(); dev = aht10_init(AHT10_I2C_BUS); if (dev == RT_NULL) { rt_kprintf(" The sensor initializes failure"); return ; } else { rt_kprintf(" The sensor initializes ok!"); } while (1) { // read temperature 采集温度 temperature = aht10_read_temperature(dev); rt_kprintf("temperature: %d.%d ", (int) temperature, (int) (temperature * 10) % 10); //former is integer and behind is decimal // read humidity 采集湿度 humidity = aht10_read_humidity(dev); rt_kprintf("humidity: %d.%d %% \n", (int) humidity, (int) (humidity * 10) % 10); //former is integer and behind is decimal rt_thread_mdelay(5000); } } int aht10_sample_init(void) { aht_10_thread = rt_thread_create("aht10_thread", aht10_thread_entry, RT_NULL, 1024, 21, 10); //如果获得线程控制块,启动这个线程 if (aht_10_thread != RT_NULL) { rt_thread_startup(aht_10_thread); return RT_EOK; } else { rt_kprintf("aht10 thread create failure !!! \n"); return RT_ENOMEM; } } MSH_CMD_EXPORT(aht10_sample_init,aht10_sample_init); ``` # 5.效果和实物展示 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230426/1c8dd215f3e55c0bec57b110cdd6e971.png) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230426/99d99d1fb290eba0622a6faf607a022d.png.webp) # 6.心得和体会 rtthread丰富的软件包和一些图形化配置,极大的减少了开发时间和难度,通过本次测评,加深了自己对IIC的理解并为后续的对IIC的开发提供实践基础和理论基础,再次感谢RT-Thread和国民技术。
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
洛伦兹力
这家伙很懒,什么也没写!
文章
2
回答
2
被采纳
0
关注TA
发私信
相关文章
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
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
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部