OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9385|回复: 9

基于CubeMx的IIC例程

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2016-10-21
在线时间
3 小时
发表于 2016-10-22 14:35:33 | 显示全部楼层 |阅读模式
用STM32CubeMx生成初始化代码工程是趋势。大家可能有感觉,用了标准库不想用寄存器;同样,我相信用了CubeMx不想用标准库。

STM32CubeMx是基于HAL库的。解压STM32Cube固件包,里面不仅有HAL库外设驱动文件,还有如Lwip、FreeRTOS、FatFs等第三方库文件;
更重要的是,里面还有Projects文件夹,包含各外设Examples和高级Applications,是我们学习STM32的重要参考例程。
STM32CubeMx还能生成工程配置信息文件,如引脚定义等。相信用了STM32CubeMx,我们再也不用对照原理图列引脚定义等信息了。
HAL库包含各外设的完整驱动,不用我们自己再重写。具体怎么用可参考STM32Cube固件包里的Projects文件夹。
闲话少叙,言归正传。
我发现,用IO模拟IIC实验在我的开发板上要把Keil优化等级设为-0才能正常通信,设为-3则不能正常通信。
这一情况耗费了我不少时间。
由于不能解决优化等级-3不能正常通信的问题,我就看STM32Cube固件包里的Projects文件夹下的例程,
具体是...\stm32cube_fw_f4_v1130\STM32Cube_FW_F4_V1.13.0\Projects\STM324xG_EVAL\Examples\BSP,
里面有一个“stm324xg_eval.c”文件,有IIC和外部EEPROM通讯的相关函数。
我把它们复制过来,重新建立工程测试。
刚开始一直通信不成功,我就和原子哥的例程对照,发现  AT24CXX   Write  的末尾要延时(delay_ms(10);)。我就加上延时再试,
。。。竟然成功了。。。


具体工程见附件!希望对大家有益!


iic_at24c02_test.rar

7.3 MB, 下载次数: 6330

Cube_IIC_AT24C02工程

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-10-23 22:35:57 | 显示全部楼层
回复 支持 反对

使用道具 举报

12

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-9-6
在线时间
30 小时
发表于 2016-10-24 18:01:50 | 显示全部楼层
表示对CubeMX无感啊,本来我们放弃了操作寄存器去使用库函数(标准库 | HAL库),就对底层了解不深刻了;如果再放弃初始化库函数而用CubeMX替代了,那么本应对底层了解十分透彻的嵌入式工程师,就对底层的概念很模糊,这样也会造成一种依赖性。
我感觉:cube是在实际应用中快捷了很多,但是我们在使用高级软件的同时,也要兼顾底层知识的摄取,这样才能在嵌入式这个行业立于不败之地。继而转DSP、FPGA等都是很有帮助的,互勉,继续学习STM32中。。。
回复 支持 反对

使用道具 举报

0

主题

125

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2728
金钱
2728
注册时间
2015-10-29
在线时间
428 小时
发表于 2016-10-25 08:57:51 | 显示全部楼层
请问下楼主你在CubeMX建工程时怎么添加AT2402元件的
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2016-10-21
在线时间
3 小时
 楼主| 发表于 2016-10-29 11:59:49 | 显示全部楼层
kepuple 发表于 2016-10-25 08:57
请问下楼主你在CubeMX建工程时怎么添加AT2402元件的

修改的官方程序,Cube固件包里有好多例程。不过没有AT24C02的历程,但有类似的操作EEPROM,摄像头等的例程,用的IIC,再和原子哥的文件比较修改就可以用了
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2016-10-21
在线时间
3 小时
 楼主| 发表于 2016-10-29 12:02:43 | 显示全部楼层
kepuple 发表于 2016-10-25 08:57
请问下楼主你在CubeMX建工程时怎么添加AT2402元件的

CubeMx生成的工程里可以添加文件夹,文件,路径的,和我们用其他方式的工程的操作方式一样
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2016-10-21
在线时间
3 小时
 楼主| 发表于 2016-10-29 12:07:20 | 显示全部楼层
mupb 发表于 2016-10-24 18:01
表示对CubeMX无感啊,本来我们放弃了操作寄存器去使用库函数(标准库 | HAL库),就对底层了解不深刻了;如 ...

CubeMx只是工具, 人     才是主体。要想用好每个外设,还是要看  参考手册。
不过,CubeMx确实很方便我们开发,这点还是不得不承认,简直是开发神器。
回复 支持 反对

使用道具 举报

0

主题

125

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2728
金钱
2728
注册时间
2015-10-29
在线时间
428 小时
发表于 2016-10-30 09:55:36 | 显示全部楼层
哦!谢谢!
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2019-7-31
在线时间
28 小时
发表于 2020-6-30 12:06:24 | 显示全部楼层
你这个是模拟IIC???
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2021-7-2
在线时间
1 小时
发表于 2021-7-18 15:45:48 | 显示全部楼层
STM32F103ZET6,用硬件I2C读写24C02死活跑不了,最后发现是FSMC和I2C冲突问题。这才明白楼主给的代码为啥要重映射I2C1……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 11:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表