1:打开CubeMX,点击File新建一个工程
2:搜索单片机型号:在弹出的型号中选择以STM32F103C6,双击
3:此时会弹出一个新建的工程,先点击file保存工程
4:选择要保存的路径,注意路径要全英文不能有中文
5:接下来配置单片机外部的晶振作为时钟源 System Core-RCC-High Speed Clock 将默认的Disable选项改为Crystal/Ceramic Resonator
6:选完之后可以发现晶振的输入输出脚已经占用了端口
7:接下来选择Clock Configuration时钟树,将默认的HSI改为HSE选项,意思是选择外部的时钟源
8:将主时钟源改为最大,点击回车确定,系统将自动配置相关外设参数
9:回到配置界面,点击System Core-SYS-Debug,将默认的no debug改为Serial Wire(串行调试)
10:选择之后可以发现,仿真器SWD的两个引脚已经被配置,一个是数据引脚,一个是时钟引脚
11:选择project manager工程管理,选择生成代码打开的软件,这边选择IAR,再选择生成代码
12:生成代码后选择打开代码所在路径就可以看到刚刚生成的工程
13:基础的模板就已经生成好了,接下来添加我们需要的功能。打开原理图,找到点灯的部分。可以看到阳极连接DCC 3.3V,阴极接到LED2
14:可以看到LED2连接的是STM32F103C6T6核心板中的PB8端口
15:打开工程回到配置界面,将PB8管脚配置为GPIO_output模式,设置用户标签,命名为LED2
16:随后点击system view中的GPIO配置界面
17:GPIO output level选择low(根据电路图低电平可以点亮)GPIO mode选择推挽式输出(驱动能力更强)上拉下拉输入输入模式暂时不用管 保存工程后再次生成代码
18:在生成的文件夹里用IAR打开工程
19:展开工程目录,找到main.c文件,点击make检查所生成的代码有没有错误
20:将库函数输入指定GPIO代码开始的部分
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET); //输出低电平
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET); //输出高电平
21:右击跳转函数可以看到函数的宏定义
22:使用STlink连接核心板,选择仿真器类型stlink,如果看到IAR选项中显示板子的型号说明连接成功
23:接下来编译一下程序如果没有问题点击下载将程序下载到板子中,下载完成之后调整窗口,将光标放在刚刚复制的GPIO代码处,点击运行到光标(为了快速执行所需要的代码)
24:随后点击单步执行
25:当代码运行到输出低电平时,板子上的LED灯点亮,再执行一步到输出高电平后LED灯熄灭
以上就是利用GPIO输出高低电压控制LED灯亮灭的过程。