Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
AB32VG1
EEPROM
测评
AB32VG1之模拟IIC
发布于 2021-05-09 17:33:44 浏览:1281
订阅该版
[tocm] # 1、IIC详解 JiangYangJie已经在他的文章[AB32VG1系列之IIC](https://club.rt-thread.org/ask/article/2621.html)中写的很详细了,这里不做过多介绍。 # 2、硬件 采用的是外接at24c04模块,进行EE的读写操作。 ![image.png](https://oss-club.rt-thread.org/uploads/20210509/8432b107cdc265ff22c2460dcdb87413.png) 因为是模拟IIC,程序里使用的引脚配置为默认引脚15(PB2-SDA)、16(PB1-SCL),关于引脚编号与序号的对应关系在Board Information下的《AB32VG1_DataSheet》中有详细描述,有兴趣的朋友可以自由切换引脚。 # 3、软件 ## 3.1、开启软件IIC功能 使用RT-Thread Studio新建基于AB32VG1开发版的项目工程,开启软件模拟IIC驱动,并在硬件设置中使能IIC总线。点击保存或者Ctrl+S组合键后RT-Thread Studio就会将相关源文件及相关宏定义自动生成。 ![image.png](https://oss-club.rt-thread.org/uploads/20210509/96b2312f2d31736978615669facac391.png) ![image.png](https://oss-club.rt-thread.org/uploads/20210509/7f829418116ad93739026951799be2b8.png) 生成后的源文件如下图所示,如上文所说有兴趣的朋友可以在引脚宏处自行修改引脚配置。 ![image.png](https://oss-club.rt-thread.org/uploads/20210509/186c638f21f76e5804774919e930159b.png) ## 3.2、添加官方EE操作官方库 在软件包中心搜索at24cxx并添加进项目工程中,保存后会自动添加进工程中packages文件夹下。在这里还可以找到EE相应的数据手册。关于库的详细介绍在软件包中右键at24cxx查看详情有明确的文档说明,这里不过多介绍。 ![image.png](https://oss-club.rt-thread.org/uploads/20210509/296fc0225b49caf7ae71632211ca56ef.png) ![image.png](https://oss-club.rt-thread.org/uploads/20210509/582a69c57d71800495907075feb1ffb6.png) ## 3.3、官方库的修改 官方提供的库中EE默认是at24c02,并且us级延时也需要进行相应修改,后面会进行详细介绍。 在at24cxx.h文件夹下对EE_TYPE进行修改,我这里用的是at24c04。 ![image.png](https://oss-club.rt-thread.org/uploads/20210509/d5bf89422dc74f4488684de048ab416d.png) 此时保存项目工程,并进行编译。 烧录后按照软件包中的描述对EE进行读写测试。 ![image.png](https://oss-club.rt-thread.org/uploads/20210509/f287bb932b277434687a70492e42e2c8.png) # 4、us级定时器问题 看了看蓝讯提供的库文件,里面关于us级延时的函数是空的。 ![image.png](https://oss-club.rt-thread.org/uploads/20210509/9a0633b815fa0989d785464d8cec9507.png) 然后at24cxx库中自带的us级延迟是根据定时器计数方式递减做的,如下图。 ![image.png](https://oss-club.rt-thread.org/uploads/20210509/8f4de508607fa76fe95fd97fc0ded620.png) 查了查蓝讯的数据手册,发现是递增的。 ![image.png](https://oss-club.rt-thread.org/uploads/20210509/e28e06c9c2a588883a113ee6760cbfdf.png) 所以在使用的时候us级延时不精确,但读写EE对时序的要求并没有太严格,所以可以正常运行,但后面还要测评GPIO驱动DS18B20,所以需要对us级延时函数进行重写。 ``` void rt_hw_us_delay(rt_uint32_t us) { rt_uint32_t ticks; rt_uint32_t told, tnow, tcnt = 0; rt_uint32_t reload = TMR0PR; ticks = us * reload / (1000); told = TMR0CNT; while (1) { tnow = TMR0CNT; if (tnow != told) { if (tnow > told) { tcnt += tnow - told; } else { tcnt += reload - told + tnow; } told = tnow; if (tcnt >= ticks) { break; } } } } ``` # 5、心得体会 本次测试内容为AB32VG1的软件模拟IIC使用,因为相关底层代码已由蓝讯提供了,所以就不需要自己动手去操作了,再加上RT-Thread Studio的可视化选择功能,大大减少了开发时间。总的来说蓝讯+RT-Thread Studio的开发模式相对简单、很容易上手。 因本人水平有限,文章内容及代码中可能会出现错误,还请谅解。 # 6、代码地址 https://gitee.com/werper/ab32-vg1
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
werper
叫我点灯大师
文章
9
回答
15
被采纳
1
关注TA
发私信
相关文章
1
at24cxx.c文件的bug
2
AT24CXX写入不成功
3
现有的at24cxx软件包支持AT24CM02这个芯片吗
4
IIC读写EEPROM的接口如何高效一些
5
有没有Write Cycle比较小的EEPROM,比如1ms?
6
I2C 驱动AT24C64
7
单片机Flash小可以用IIC通讯的EEPROM可以存程序吗
8
添加eeprom和铁电存储器,怎么修改Kconfig,让env工具有添加选项?
9
I2C驱动at24c02问题已解决
10
使用at24cxx读写的问题
推荐文章
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
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部