以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例

1:打开CubeMX,点击File新建一个工程

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第1张图片

 2:搜索单片机型号:在弹出的型号中选择以STM32F103C6,双击

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第2张图片

 3:此时会弹出一个新建的工程,先点击file保存工程

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第3张图片

 4:选择要保存的路径,注意路径要全英文不能有中文

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第4张图片

5:接下来配置单片机外部的晶振作为时钟源 System Core-RCC-High Speed Clock 将默认的Disable选项改为Crystal/Ceramic Resonator

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第5张图片

 6:选完之后可以发现晶振的输入输出脚已经占用了端口

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第6张图片

7:接下来选择Clock Configuration时钟树,将默认的HSI改为HSE选项,意思是选择外部的时钟源

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第7张图片

 8:将主时钟源改为最大,点击回车确定,系统将自动配置相关外设参数以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第8张图片

 9:回到配置界面,点击System Core-SYS-Debug,将默认的no debug改为Serial Wire(串行调试)

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第9张图片

10:选择之后可以发现,仿真器SWD的两个引脚已经被配置,一个是数据引脚,一个是时钟引脚 

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第10张图片

 11:选择project manager工程管理,选择生成代码打开的软件,这边选择IAR,再选择生成代码

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第11张图片

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第12张图片

 12:生成代码后选择打开代码所在路径就可以看到刚刚生成的工程

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第13张图片

 以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第14张图片

 13:基础的模板就已经生成好了,接下来添加我们需要的功能。打开原理图,找到点灯的部分。可以看到阳极连接DCC 3.3V,阴极接到LED2

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第15张图片

  14:可以看到LED2连接的是STM32F103C6T6核心板中的PB8端口

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第16张图片

 15:打开工程回到配置界面,将PB8管脚配置为GPIO_output模式,设置用户标签,命名为LED2

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第17张图片

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第18张图片

 16:随后点击system view中的GPIO配置界面

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第19张图片

 17:GPIO output level选择low(根据电路图低电平可以点亮)GPIO mode选择推挽式输出(驱动能力更强)上拉下拉输入输入模式暂时不用管 保存工程后再次生成代码

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第20张图片

 18:在生成的文件夹里用IAR打开工程

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第21张图片

19:展开工程目录,找到main.c文件,点击make检查所生成的代码有没有错误

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第22张图片

 20:将库函数输入指定GPIO代码开始的部分

HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET); //输出低电平

HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET); //输出高电平

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第23张图片

 21:右击跳转函数可以看到函数的宏定义

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第24张图片

 以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第25张图片

 22:使用STlink连接核心板,选择仿真器类型stlink,如果看到IAR选项中显示板子的型号说明连接成功

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第26张图片

 23:接下来编译一下程序如果没有问题点击下载将程序下载到板子中,下载完成之后调整窗口,将光标放在刚刚复制的GPIO代码处,点击运行到光标(为了快速执行所需要的代码)

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第27张图片

 24:随后点击单步执行

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第28张图片

 25:当代码运行到输出低电平时,板子上的LED灯点亮,再执行一步到输出高电平后LED灯熄灭

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例_第29张图片

 以上就是利用GPIO输出高低电压控制LED灯亮灭的过程。

你可能感兴趣的:(大数据)