Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
AB32VG1
EEPROM
测评
AB32VG1之模拟IIC
发布于 2021-05-09 17:33:44 浏览:1374
订阅该版
[tocm] # 1、IIC详解 JiangYangJie已经在他的文章[AB32VG1系列之IIC](https://club.rt-thread.org/ask/article/2621.html)中写的很详细了,这里不做过多介绍。 # 2、硬件 采用的是外接at24c04模块,进行EE的读写操作。  因为是模拟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就会将相关源文件及相关宏定义自动生成。   生成后的源文件如下图所示,如上文所说有兴趣的朋友可以在引脚宏处自行修改引脚配置。  ## 3.2、添加官方EE操作官方库 在软件包中心搜索at24cxx并添加进项目工程中,保存后会自动添加进工程中packages文件夹下。在这里还可以找到EE相应的数据手册。关于库的详细介绍在软件包中右键at24cxx查看详情有明确的文档说明,这里不过多介绍。   ## 3.3、官方库的修改 官方提供的库中EE默认是at24c02,并且us级延时也需要进行相应修改,后面会进行详细介绍。 在at24cxx.h文件夹下对EE_TYPE进行修改,我这里用的是at24c04。  此时保存项目工程,并进行编译。 烧录后按照软件包中的描述对EE进行读写测试。  # 4、us级定时器问题 看了看蓝讯提供的库文件,里面关于us级延时的函数是空的。  然后at24cxx库中自带的us级延迟是根据定时器计数方式递减做的,如下图。  查了查蓝讯的数据手册,发现是递增的。  所以在使用的时候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
叫我点灯大师
文章
10
回答
19
被采纳
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
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
FAL
RTC
rt-smart
I2C_IIC
cubemx
UART
ESP8266
WIZnet_W5500
BSP
ota在线升级
PWM
flash
packages_软件包
freemodbus
潘多拉开发板_Pandora
ADC
GD32
定时器
编译报错
flashDB
keil_MDK
socket
中断
rt_mq_消息队列_msg_queue
Debug
ulog
SFUD
msh
C++_cpp
at_device
本月问答贡献
出出啊
1524
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
821
个答案
179
次被采纳
crystal266
555
个答案
162
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部