想问下大家现在都有用cubemx生成初始代码吗?
大家好,我之前一直用STM8S003,都是直接操作寄存器,感觉还是挺好用的,遇到问题就看看手册泡泡坛子基本都能搞定,后来由于产品的升级,STM8就不够用了,首先就想到STM32,可是当我看到那么多寄存器,感觉头好晕,也看了一些视频教程,感觉设置的确比STM8要麻烦太多了,后来看到STM32CUBEMX可以以图形化的界面产生初始设置的代码,觉得挺不错,但是相关的例程好像不多,视频教程也少,大家有在用cubeMX吗?当然,使用CubeMX有利有弊。
使用Cube的坏处是,它对操作封装的太好了,不利于你对底层操作的理解。
如果是刚开始使用STM32系列芯片,个人建议先使用标准库。
有的人还在操作寄存器,说这样可以更灵活,代码效率更高。本人持反对态度。
自己操作寄存器,出错的概率很高,编写程序耗费的精力很大,出错的时候检查一样非常困难。再者,现在的CPU主频已经完全可以弥补运行效率的问题,除了非常特殊的应用。
直接操作寄存器无异于使用汇编写代码,除了显摆一下自己知道寄存器哪个位干什么用,没有太多可取的地方。 cubemx确实方便不少,再配合HAL库是以后的方向。。。 有啊, 一些简单的东西还是会用hal 的 用官方的库函数也是很方便的啊 不过现在HAL是趋势 CubeMX是很好的开发工具,可以省去查看寄存器的麻烦,甚至硬件驱动的细节都不必关心。
刚开始用的时候,会遇到一些麻烦,觉得很不好用。原因是,HAL库的结构和标准库有很大不同,特别是中断部分。HAL库把中断源的判断,中断的标志位处理等封装到中断函数,给用户提供了callback函数(可在相应外设的.h文件找到其原型)。用户使用某个中断的时候,只需要在CubeMX配置并生成代码后,重写相应的callback函数。
CubeMX更强大的地方是对FATFS等中间件的支持。
最近用CubeMX生成了一个SD卡的工程,硬件使用SDIO接口,配置完成之后,直接调用f_mount()函数挂载FATFS,然后就可以调用f_open()等文件操作函数了。对于SD卡的底层操作根本不用自己去写,SD卡复杂的初始化过程也不需要关心。 我直接从arduino转stm32用了两周时间,靠的就是cube。
例程很多的,你安装cubeMX以后,下载对应的pack压缩包,解压后就有例程。
HAL库里的注释也算齐全,用起来没有太大问题。 HAL 是不是就是middleware??? HAL是趋势,只是目前资料不是很多。。。:)
页:
[1]
2