STM32Cube学习一——简介、工程建立、代码输出

一,简介
STM32Cube是专门为STM32设计的方便编程的软件,它可以输出MDK,IAR等编写工具的工程文件,生成之后,可以利用这些工具进行修改。

这里我说一下Cube的弊端,它使用的库是HAL和LL库,而我一开始是从源享科技的刘凯老师那里学的stm32,用的是标准固件库。如果你会用标准固件库,其实HAL和LL库编程的逻辑与标准固件库差不多。但是,缺点是,没有中文的固件库手册。这就令人头疼了。我平常编写的时候都是需要依靠手册的,而我的英语水平又不好,所以后来就索性不用Cube了。

如果大家自诩英语水平不错,还是建议大家用Cube以及HAL和LL库编写的。

二,工程建立
打开STM32CubeMX5.1.0,界面如下图所示
在这里插入图片描述
图1 Cube5.1.0主界面
1:打开已存在的工程
2:选择单片机型号建立工程
3:选择官方开发板新建工程
4:检查更新
5:安装单片机软件包。
这里,我们点击2处,等待单片机型号更新,完成都自动进入单片机选择器,如下图所示
在这里插入图片描述
图2 选择MCU
1:输入单片机型号进行搜索
双击2:即可进入新工程,点亮箭头处五角星可以收藏,收藏后的单片机型号可以在3处快速找到。同时这个界面也可以用来进行单片机筛选,或者安装MCUFinder进行单片机选型。

三,输出代码
1.在Project Manager下的Project配置输出文件名、地址、兼容软件
2.在Project Manager下的Code Generator中
在这里插入图片描述
1:进入Code Generator标签
2:选择需要复制的文件,如非特殊需要,选择仅复制需要的库文件即可
3:勾选将不同外设初始化代码放在不同的C语言文件和同文件中,同时选择在重新生成时保留用户代码,这样,当功能有修改时便可直接重新生成,不影响自己编写的代码。
3.在Project Manager下的Advanced Settings中,可以选择使用HAL库或者LL库

注意:
在Help的Updater Settings下的
Repository Folder中,这里是固件包下载到的地址,一定要填写英文的!!!
否则下载后,回来看的时候会发现这里是一团乱码。

介绍STM32CubeMX 5.0.0 STM32CubeMX是32位ARM®Cortex®STM32微控制器的图形工具。它是STMCube“计划的部分,既可以作为独立应用程序使用,也可以作为集成开发环境(IDE)集成的Eclipse插件使用 .STM32CubeMX具有以下主要功能: 轻松的微控制器选择涵盖整个STM32产品组合 从STMicroelectronics板列表中选择电路板。 简单的微控制器配置(引脚,时钟树,外设,中间件)和相应的初始化C代码的生成。 通过将先前保存的配置导入新的MCU项目,可轻松切换到属于同系列的另个微控制器。 生成配置报告。 为选择的集成开发环境工具链生成IDE就绪项目。STM32CubeMX项目包括生成的初始化C代码STM32 HAL驱动程序,用户配置所需的中间件堆栈以及在所选IDE中打开和构建项目所需的所有相关文件。 用户定义的应用程序序列的功耗计算。 自我更新允许用户使STM32CubeMX保持最新状态。 下载和更新用户应用程序开发所需的STM32Cube“嵌入式软件”(有关STM32Cube嵌入式软件产品的详细信息,请参阅附录E:STM32Cube嵌入式软件包)。 安装并运行STM32CubeMX 5.0.0 支持的操作系统和体系结构 Windows®7:32位(x86),64位(x64) Windows®8:32位(x86),64位(x64) Windows®10:32位(x86),64位(x64) Linux®:32位(x86)和64位(x64)(在RedHat,Ubuntu和Fedora上测试) 由于STM32CubeMX是32位应用程序,因此某些版本的Linux 64位 发行版需要安装32位兼容软件包,如作为ia32-libs。 MacOS:64位(x64)(在OS X Yosemite上测试) 软件要求 在Windows和Linux上:Java运行时环境(最低版本1.7.0_45) 在MacOS上:Java开发工具包(最低版本1.7.0_45) 安装STM32CubeMX 要安装STM32CubeMX,请执行以下步骤: 将最新的STM32CubeMX安装包的全部内容从http://www.st.com/stm32cubemx解压缩(解压缩)到同目录中 在Windows上 确保您拥有管理员权限 双击SetupSTM32CubeMX-5.0.0.exe文件 在Linux上 确保您具有目标安装目录的访问权限,您可以以root(或sudo)身份运行安装,以在共享目录上安装STM32CubeMX 在SetupSTM32CubeMX-5.0.0.linux文件上双击(或从控制台窗口启动) 在MacOS上 确保您具有目标安装目录的访问权限,您可以以root(或sudo)身份运行安装,以在共享目录上安装STM32CubeMX 在SetupSTM32CubeMX-5.0.0应用程序上双击(或从控制台窗口启动) 安装后,您可以安全地从磁盘中删除zip的内容。 有关系统要求或其他可能安装的更多详细信息,请参阅STM32CubeMX用户手册。 运行STM32CubeMX 在Windows上 从Program Files> ST Microelectronics> STM32CubeMX中选择STM32CubeMX。 或者双击桌面上的STM32CubeMX图标。 在Linux上 从STM32CubeMX安装目录启动STM32CubeMX可执行文件 在MacOS上 从启动板启动STM32CubeMX应用程序 卸载STM32CubeMX 要卸载STM32CubeMX,请执行以下步骤: 在Windows上 打开Windows控制面板。 选择“程序和功能”以显示计算机上安装的程序列表。 右键单击STM32CubeMX并选择卸载功能。 在Linux上 使用文件资源管理器,进入STM32CubeMX安装的卸载程序目录,然后双击startuninstall桌面快捷方式 或使用java -jar /Uninstaller/uninstaller.jar手动启动卸载 在MacOS上 使用文件资源管理器,进入STM32CubeMX安装的Uninstaller目录,然后双击uninstaller.jar 或直接将STM32CubeMX应用程序移动到回收站中
### 如何在STM32CubeIDE中设置和使用PWM输出 #### 配置项目与硬件资源 为了创建个能够生成PWM信号的项目,在STM32CubeIDE环境中首先要建立个新的工程并选择合适的MCU型号[^4]。 #### 定时器配置 进入"Pinout & Configuration"标签页,这里可以直观地看到芯片上的各个引脚及其功能分配情况。对于想要启用PWM输出的情况来说,应当挑选个支持此特性的定时器通道作为载体,并将其工作模式调整至PWM状态[^2]。 #### 参数设定 针对选定的定时器实例,需进步细化其运作参数,例如周期(Period)、脉宽(Pulse Width),以及频率等属性。这些数值决定了最终产生的波形特征——占空比大小及刷新速率。具体操作可通过图形界面完成,也可以通过手动编辑初始化函数实现更精细控制。 #### 代码示例 下面给出了段基于HAL库编写的简单C语言程序片段用于开启TIM1_CH1通道下的PWM输出: ```c // 初始化结构体定义 static void MX_TIM1_Init(void) { TIM_MasterConfigTypeDef sMasterConfig = {0}; TIM_OC_InitTypeDef sConfigOC = {0}; htim1.Instance = TIM1; htim1.Init.Prescaler = 8399; // 设置预分频系数, 影响PWM频率 htim1.Init.CounterMode = TIM_COUNTERMODE_UP; htim1.Init.Period = 999; // 自动重装载值, 即PWM周期长度 htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; HAL_TIM_PWM_Init(&htim1); sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig); sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = 499; // 初始占空比50% sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1); } int main(void) { /* Reset of all peripherals, Initializes the Flash interface and Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_TIM1_Init(); // 调用上述自定义初始化方法 while (1) { __asm volatile ("nop"); // 主循环等待中断或其他事件触发处理逻辑 } } ``` 这段代码展示了如何利用STM32CubeMX工具生成的基础框架基础上增加必要的PWM配置语句,从而让指定GPIO端口按照预定规则发出连续变化幅度的方波信号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值