赞
踩
目录
一、安装 stm32CubeMX,配合Keil,使用HAL库
由于STM32CubeMX是Java实现的,需要安装jdk环境。
jdk官网下载链接:
Java Downloads | Oracle
1.下载地址:
https://www.st.com/en/development-tools/stm32cubemx.html
2.安装过程
①以管理员身份运行并安装 SetupSTM32CubeMX-4.27.0.exe
,进入下面这个界面后,点击Next
当使用STM32系列微控制器时,HAL(Hardware Abstraction Layer)库是一个非常有用的工具,它可以简化硬件操作并提高代码的可移植性。
2.1. 创建工程:
使用STM32CubeMX创建一个新的工程,并选择你的微控制器型号。
2.2. 配置引脚:
在STM32CubeMX中,配置你的引脚,包括外设功能、引脚类型和初始化状态。例如,如果你想要控制一个LED,选择一个GPIO引脚并将其配置为输出。
2.3. 生成代码:
在STM32CubeMX中生成代码,它会自动生成工程文件和初始化代码。
2.4. 在IDE中打开工程:
使用你喜欢的集成开发环境(IDE),如Keil、STM32CubeIDE等,打开生成的工程。
2.5. 编写应用代码:
在主文件(通常是main.c)中编写应用程序代码。以下是一个简单的示例代码,假设你要控制一个LED连接到GPIOB的第0号引脚:
2.6. 编译和下载:
使用你的IDE编译工程,并将程序下载到微控制器中。
2.7. 调试:
启动调试器,检查代码的运行情况。如果一切正常,LED应该会每隔1秒交替点亮和关闭。
HAL_GPIO_WritePin函数:写入引脚高低电平
- void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
- {
- /* Check the parameters */
- assert_param(IS_GPIO_PIN(GPIO_Pin));
- assert_param(IS_GPIO_PIN_ACTION(PinState));
-
- if (PinState != GPIO_PIN_RESET)
- {
- GPIOx->BSRR = GPIO_Pin;
- }
- else
- {
- GPIOx->BSRR = (uint32_t)GPIO_Pin << 16u;
- }
- }
2.HAL_GPIO_TogglePin函数:引脚电平翻转
- void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
- {
- uint32_t odr;
-
- /* Check the parameters */
- assert_param(IS_GPIO_PIN(GPIO_Pin));
-
- /* get current Output Data Register value */
- odr = GPIOx->ODR;
-
- /* Set selected pins that were at low level, and reset ones that were high */
- GPIOx->BSRR = ((odr & GPIO_Pin) << GPIO_NUMBER) | (~odr & GPIO_Pin);
- }
1.新建项目:
2.选择芯片
3.SYS选择
4.RCC选择
创建完成配置:
想要实现LED1、LED2周期闪烁,我们可以用翻转电平操作。
由于初始LED1(PB9)高电平熄灭,LED2(LED8)低电平点亮。
加入延时函数,让二者电平翻转。
- while (1)
- {
- HAL_Delay(500);
- HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_9);
- HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8);
- /* USER CODE END WHILE */
-
- /* USER CODE BEGIN 3 */
- }
4.1波形观察(设置调试)
波形图查看:
这次作业虽然做的较为潦草,但是提高本次的HAL库学习,更加理解了嵌入式开发,HAL库会很方便和很容易,本人才疏学浅,有问题请各位积极指出,谢谢大家。
参考文献:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。