你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于cube的硬件I2C小心得

[复制链接]
hithfy 发布时间:2015-9-30 15:07
     这段时间一直在学习cube,研究了关于stmcu上的硬件I2C配置问题,分享一下给各位需要的朋友。
     主要功能:实现将一个TX_buf[]存入AT24C64指定地址,然后读出你想读出的数据存入RX_buf[]。
     从用户手册可以查到硬件I2C有轮询、中断、DMA三种模式,本实验使用轮训方式。    主函数中配置完成后,加一个小小的HAL延时(一定要有!不加貌似会出现读出乱码),然后往下写。
     HAL_I2C_Mem_Write(DevAddress,MemAddress,MemAddSize,TX_buf,Size,Timeout),在主函数初始化后,调用此函数。
     部分参数说明:DevAddress是设备地址设为0xA0(4BIT器件码+3位(A2A1A0)片选地址码+1BIT读写);
                             MemAddress是存储器内部写入的起始地址设置为0x00(也可设置为其他,范围为:0x0000---0x1fffh);
                             MemAddSize是存储器内部地址大小,这里设置为0XFF(<0x1fffh)。      然后加一个HAL延时(一定要有,貌似没有就没办法读取!)。
    接着写HAL_I2C_Mem_read(DevAddress,MemAddress,MemAddSize,RX_buf,Size,Timeout)。
    这样,一个简单的写入->读出过程就完成了!


    关于cube的设置问题:由于硬件上,我的A2A1A0均接地,所以在salve feature->primary slave address中设置为0。








收藏 评论8 发布时间:2015-9-30 15:07

举报

8个回答
yanhaijian 回答时间:2015-9-30 15:18:25
还在用标准库,毕竟比较熟悉。
guiyi 回答时间:2015-9-30 15:50:02
学习了 感谢楼主
数码小叶 回答时间:2015-9-30 18:05:46
看不到函数体
你好我好大家好! 回答时间:2015-9-30 20:28:10
感谢楼主
ptiinngg 回答时间:2015-10-1 11:42:40
持续观望中,感谢楼主
lkl0305 回答时间:2015-10-1 16:26:34
多谢分享心得,学习了

000000.jpg
小小木 回答时间:2015-10-15 09:33:35
不错。。谢谢楼主分享!!!
@@@义 回答时间:2017-6-25 15:41:11
楼主,方便看看我的i2c在哪里出的问题么。https://www.stmcu.org.cn/module/forum/thread-612369-1-1.html

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版