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

基于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扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版