STM32F030XX 系列时钟配置 小结
太久没有写STM的程序了~~~ 发现变化好大啊! 不得一步一步的从头开始学习!工程建好后 首选是配置 系统时钟,以下是我的一些小结,不知对不对,不对的地方请各位斧正。
第一步学会看 系统时钟的block 图, 看懂之后 配置寄存器。
网上有两种做法:
1种是 “在应用笔记中找到STM32F0xx系列微控制器的时钟配置工具,下载下来得到一个EXCEL表文件”,然后生成一个system_stm32f0xx.c 文件文件中SystemInit() 函数对系统时钟进行了配置, 然后这个函数 会在单片机起来的时候在startup_stm32f030.s 中被调用, 这样的话 应用层的 程序上就不用再去配置系统时钟。这个只是配置系统的时钟
如果 其他外设 如 GPIO, I2C,串口 要使用的话, 就要通过 RCC 去配置,等于 把时钟线 牵到对应外设上去。
第2 种是直接 在RCC_Configuration() 中进行 系统时钟配置,和外设 的时钟配置。。等于自己写出每一个寄存器的配置。 个人感觉这样比较麻烦
还有一个更加简单的,就是使用CubeMx配置!!!!使用HAL库。。。不过如果在使用工具之前,看过寄存器的,效果更加好。。。 CubeMx自动生成了.写的大都是应用了,不过也有些bug,在F1的SDIO驱动里面就有问题 linwei1234 发表于 2018-3-6 18:04
CubeMx自动生成了.写的大都是应用了,不过也有些bug,在F1的SDIO驱动里面就有问题 ...
CubeMx 确实 很强大, 不过好像占用很多程序空间是吗? MrJiu 发表于 2018-3-6 16:48
还有一个更加简单的,就是使用CubeMx配置!!!!使用HAL库。。。不过如果在使用工具之前,看过寄存器的, ...
CubeMx 也可以使用HAL 库??谢谢! su-409464 发表于 2018-3-7 08:48
CubeMx 也可以使用HAL 库??谢谢!
Cube只是个工具,他生成的代码是用的两个库,HAL和LL,可以任意选择,甚至某个外设单独用另外的都可以。。。 MrJiu 发表于 2018-3-7 10:47
Cube只是个工具,他生成的代码是用的两个库,HAL和LL,可以任意选择,甚至某个外设单独用另外的都可以。 ...
好的谢谢你! 图形化的界面应该很棒,有机会一定要学习一下!谢谢版主! MrJiu 发表于 2018-3-7 10:47
Cube只是个工具,他生成的代码是用的两个库,HAL和LL,可以任意选择,甚至某个外设单独用另外的都可以。 ...
稍微修正一下,cubeMx目前只能生成HAL,LL的代码只能在库的路径下找,都是固定例程,目前暂时不能灵活生成能 butterflyspring 发表于 2018-3-7 14:58
稍微修正一下,cubeMx目前只能生成HAL,LL的代码只能在库的路径下找,都是固定例程,目前暂时不能灵活生成能 ...
你说的应该指的是时钟,其他外设配置,可以很灵活,当然了,这里的灵活依然仅仅指的是初始化而已!!! MrJiu 发表于 2018-3-7 16:17
你说的应该指的是时钟,其他外设配置,可以很灵活,当然了,这里的灵活依然仅仅指的是初始化而已!!! ...
是的,毕竟应用是无穷无尽,就如我们的串口接口,就只有轮训,中断,和DMA,但是他们要不就是用time out,不要就是以长度作为结束,但用户用AT指令或者一些数据采集卡时,就不能有关键符号,或者是自动接收了.都是需要自己修改接口,希望cubeMx可以越来越完善,适应越来越多的应用.:lol
页:
[1]