关于NUCLEO-F207ZG开发板通过STM32CubeMx配置裸机点亮LED经验
- 需求:因为工作关系需要用到STM32F207ZGTx的芯片,所以公司购买了基于STM32F207ZGT6U芯片的ST开发板NUCLEO-F207ZG。而且要求使用FeeRTOS+Lwip的环境,来进行软件开发,主要目的是通过此环境,运行一个软件下载程序,此程序用到了lwip库封装的socket套接字函数库,通过Tcp请求服务器下载文件包。因为我自己第一次正式做一个关于STM32的程序项目,之前只是在学校学习和了解一些基础,认识比较浅显,所以写下本文来加深自己的学习和了解,并且总计经验分享出来,有问题可以共同探讨。
- 本文内容:接下来我们熟悉开发板,来进行裸机点亮开发板LED的流程
- 配置软件:STM32CubeMx 6.2.1
开发板:NUCLEO-F207ZG
配置环境:裸机配置LED1,LED2,LED3
编译软件:keil 5.27
- 首先我们熟悉NUCLEO-F207开发板的LED1,LED2,LED3的引脚分别为PB0,PB7,PB14.
- 打开STM32CubeMx配置NUCLEO-F207ZG,选择配置芯片
- 在左上角选择NUCLEO-F207ZG
- 点击开发板,选择右上角start project开始创建基于NUCLEO-F207ZG的工程配置
- 开始整个工程配置,打开GPIO配置可以看到LED1,LED2,LED3的引脚都是配置完成的,这里不做修改
- 配置高速时钟HSE,选择Crystal/Ceramic Resonator,低速时钟LSE不使能
- 然后配置系统sys,Debug选择串口Serial Wire, 选择系统时钟源sysTick。
- 引脚配置完成,接下来进入Clock Configuration,HCLK根据开发板信息选择最大120Mhz.
- 配置Project Manager下的工程名称,软件环境,写工程名称,选择编译软件,我用的keil5.27这里选择,MDK-ARM 5.27
- 第二项选择生产工程代码的内容,这里选择只生成所需要的文件包 .c和.h文件分开,其余配置默认即可。
- 生成工程,点击右上角GENERATE CODE
- 在keil中打开工程
- 编写代码,点亮LED1,LED2,LED3.
代码:
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
HAL_GPIO_WritePin(GPIOB, LD1_Pin|LD3_Pin|LD2_Pin, GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOB, LD1_Pin|LD3_Pin|LD2_Pin, GPIO_PIN_SET);
HAL_Delay(500);
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
- 在keil中编译,没有报错
- 点击load,烧录程序
- 观察现象:看到开发板LED1,LED2,LED3.间隔500ms左右亮灭表示程序运行成功LED1,LED2,LED3亮LED1,LED2,LED3灭
- 总结
- 注意代码使用了HAL库函数,
HAL_GPIO_WritePin(GPIOB, LD1_Pin|LD3_Pin|LD2_Pin, GPIO_PIN_RESET);
HAL_Delay(500);
- Dubeg下载时需要提前选在好Reset and Run 这样下载后程序会直接运行,如果你忘记了 ,会导致没有LED点亮的现象。
- 注意代码使用了HAL库函数,