打印
[其他ST产品]

STM32 CubeMx教程 -- 基础知识及配置使用教程

[复制链接]
楼主: ym0sly
手机看帖
扫描二维码
随时随地手机跟帖
21
ym0sly|  楼主 | 2023-3-28 16:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
Timebase Source :
一般指HAL的时基,即HAL库中的uwTick,用于实现HAL_Delay()以及作为各种timeout时钟的基准。一般情况下直接选择默认的Sys Tick(嘀嗒定时器)来维护SYS Timebase Source即可,即直接放在SysTick_Handler()中断服务函数中,也就是下面的HAL_IncTick()函数。

使用特权

评论回复
22
ym0sly|  楼主 | 2023-3-28 16:53 | 只看该作者
配置时钟树
时钟树

如果在前面RCC时钟配置中,选择使用外部晶振,在这里选择使用外部高速时钟模式(HSE);如果没有配置RCC时钟,则使用默认的内部高速时钟(HSI);
然后配置PLL锁相环,之后倍频更改系统主时钟;

使用特权

评论回复
23
ym0sly|  楼主 | 2023-3-28 16:54 | 只看该作者
快速配置最大时钟频率,可以直接修改(3)系统时钟,直接改成72M,然后回车就行

Project(工程设置)

使用特权

评论回复
24
ym0sly|  楼主 | 2023-3-28 16:54 | 只看该作者

使用特权

评论回复
25
ym0sly|  楼主 | 2023-3-28 16:54 | 只看该作者
注意:项目路径和项目名称最好使用英文,否则后期可能会存在一些奇奇怪怪的错误

使用特权

评论回复
26
ym0sly|  楼主 | 2023-3-28 16:55 | 只看该作者
Code Generator(代码生成器)

Copy all used libraries into the project folder
将HAL库的所有.C和.H都复制到所建工程中
优点:这样如果后续需要新增其他外设又可能不再用STM32CubeMX的时候便会很方便
缺点: 体积大,编译时间相比于其他选项非常长

使用特权

评论回复
27
ym0sly|  楼主 | 2023-3-28 16:56 | 只看该作者
Copy only the necessary library files
只复制所需要的.C和.H
优点:体积相对小,编译时间短,并且工程可复制拷贝
缺点: 新增外设时需要重新用STM32CubeMX导入

使用特权

评论回复
28
ym0sly|  楼主 | 2023-3-28 16:56 | 只看该作者
Add necessary library files as reference in the toolchain project configuration file
不复制文件,直接从软件包存放位置导入.C和.H
优点:体积小,比较节约硬盘空间
缺点: 复制到其他电脑上或者软件包位置改变,就需要修改相对应的路径

使用特权

评论回复
29
ym0sly|  楼主 | 2023-3-28 16:57 | 只看该作者
根据自己需求选择就行,一般来说第一个和第二个都行;

工程创建

使用特权

评论回复
30
ym0sly|  楼主 | 2023-3-28 16:57 | 只看该作者
三、结合Keil 的使用教程
首先在上一个界面,打开文件夹和打开工程都可以;
打开工程文件以后,首先点击魔术棒进行设置;

使用特权

评论回复
31
ym0sly|  楼主 | 2023-3-28 16:57 | 只看该作者

使用特权

评论回复
32
ym0sly|  楼主 | 2023-3-28 16:57 | 只看该作者
在魔术棒设置界面,进入(1)Debug界面,在(2)位置选择自己使用的下载器,然后进入(3)Settings界面;

使用特权

评论回复
33
ym0sly|  楼主 | 2023-3-28 16:57 | 只看该作者
在Settings界面 ,根据之前在STM32CubeMx里面SYS设置的,进行选择这里使用的SW还是JTAG协议;
注意STM32CubeMx 和 MKD 里面协议要一致,否则无法进行调试

使用特权

评论回复
34
ym0sly|  楼主 | 2023-3-28 16:58 | 只看该作者
代码书写



代码要写在 /* XX CODE BEGIN*/ 和 /* XX CODE END*/ 之间,否则下次再STM32CubeMx里面加东西,再生成工程的时候,就会把不在这个区域里面的代码删掉。

使用特权

评论回复
35
ym0sly|  楼主 | 2023-3-28 16:58 | 只看该作者
补充
STM32的三种开发模式
1、STM32能基于寄存器开发,直接对寄存器进行编程。基于寄存器编写的代码简练、执行效率高。但由于 STM32 微控制器的片上外设和寄存器数量太多,这种编程方式移植性差,寄存器编程比较复杂。

使用特权

评论回复
36
ym0sly|  楼主 | 2023-3-28 16:58 | 只看该作者
2、基于ST官方的固件库进行开发。现在大部分STM32教程教的都是这种库函数开发,如正点原子,野火等。他相比寄存器开发更加简单,不需要记住每个寄存器的地址和名称,只要会调用ST官方封装好的库函数进行编程就可以了。

使用特权

评论回复
37
ym0sly|  楼主 | 2023-3-28 16:58 | 只看该作者
3、基于STM32CubeMx进行开发,使用的是ST官方新推出的HAL库,可以通过软件内设计好的图形化界面进行配置,软件自动生成生成配置代码,然后我们再在IDE上面代码编写。

使用特权

评论回复
38
ym0sly|  楼主 | 2023-3-28 16:58 | 只看该作者
单片机的三种烧录模式
ICP:使用SWD接口进行烧录,如J-Link烧录器和J-Flash软件配合使用。
ISP:使用引导程序(Bootload)加上外围UART/USB等接口进行烧录。
IAP:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。

使用特权

评论回复
39
Clyde011| | 2024-1-27 14:08 | 只看该作者

128以上的某些地址为特殊寄存器使用,不能给程序用

使用特权

评论回复
40
Uriah| | 2024-1-27 17:07 | 只看该作者

只要内存占用量不超过 256.0 就可以用 small 模式编译

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则