一、硬件介绍
正点原子战舰开发板,主控芯片STM32F103ZET6
两个LED分别连接到单片机的PB5和PE5
二、STM32CUBEMX基础配置
2.1 晶振配置
如果你的板子上外部高速晶振8M和外部低速晶振32.768K都有的话,那么就在RCC-HSE/LSE后面选择Cyrystal/Ceramic Resonator
2.2 下载口配置
程序下载方式建议用SW下载,比较节省IO口,除开VCC和GND,只需要两个线。
分别是PA13-SWDIO和PA14-SWCLK
2.3 配置时钟
STM32F103时钟最大到72MHZ,可以直接按最大时钟频率配置,注意如果显示红色,说明配置有问题,需要自行调整数值,直到没有红色提示为止
三、STM32CUBEMX外设配置
点亮LED需要将GPIO配置为输出模式
四、生成工程
上面配置以及完成,直接生成代码,然后下载到单片机即可。生成代码方法如下
1.在Project中配置项目名,项目存放位置,开发工具名称等,但要注意项目名和路径不能有中文。
2.在Code Generator中配置代码中的一些规定
3.点击GENERATE CODE生成代码到项目文件夹中
五、keil里面的设置
1.点击魔术棒,在Debug里面选择下载线,一般是J-LINK和ST-Link比较多。
2.在Settings-Debug中选择下载模式为SW
3.在Flash-Download中将Reset and Run勾选上,默认是不勾选的,这样可以程序下载进去就开始运行,否则每次都要复位一次程序才运行。
六、观察现象
程序下载前
|
程序下载后
|
如果想要让一个灯亮,一个灯灭,只需要重新在STM32CUBEMX中配置高低电平,然后重新生成代码,下载到开发板即可~
也可以自己在代码中做修改,我们知道在这个硬件设计里面想要让led灯亮就是让电平为低;想要让led灭就让电平为高。
/* USER CODE BEGIN 2 */
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);//PB5设置为高电平,即LED0灭
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_RESET);//PE5设置为低电平,即LED1亮
/* USER CODE END 2 */
PS:常用的GPIO输出的HAL库函数
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0,GPIO_PIN_RESET)//输出低电平
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0,GPIO_PIN_SET)//输出高电平
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_0);//电平翻转