任务描述
要求通过单片机PC0引脚控制LED0以1秒为周期闪烁
软件设计
使用STM32CubeIDE编写STM32单片机C程序
1.依次点击File、New、STM32Project,新建工程。
2.在型号选择界面输入搜索单片机型号,此次实验选择“STM32F103R6”,选择"LQPF64"选项,然后点击下一步。
3.取消选中“Use default location”(使用默认位置)复选框,设定新工程名称及其所在路径,单击“Finish”(完成)按钮进入STM32单片机参数图形化配置界面。
4.进入如下界面
单击芯片模型图的引脚PC0,将其设定为“GPIO_Output”(GPIO输出)模式
设置完成后的界面
5.在STM32CubeIDE 工具栏中单击(元器件设定工具代码生成)按钮,一键自动初始化代码。
6.代码生成完毕后,打开STM32CubeIDE左侧目录树中的“Src”(SourceCode的缩写,源代码)文件夹,打开工程主文件 main.c,在生成代码的基础上继续编程。
代码如下:
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0);//输入的第一条代码,翻转PC0输出状态
HAL_Delay(500);//输入的第二条代码,延时500m
值得注意的是,应尽量养成在“USER CODEBEGIN”(用户代码开始)与“USERCODE END”(用户代码结束)注释保护区之间编程的习惯,否则当人们重新进入STM32单片机参数图形化配置界面修改配置参数再重新生成代码时,注释保护区以外部分的代码会被全部自动删除。
7.生成HEX文件
打开属性对话框
进行设置
保存后回到主界面,点击生成按钮,即可在源代码编译成功后输出HEX文件
本项目为了简化流程,没有对单片机的振荡源进行选择,而是使用了默认的内部RC振荡器;也没有对GPIO引脚的输出模式进行选择,而是使用了默认的推挽输出模式。
Proteus仿真
1.打开Proteus8.7软件,新建工程
2.设置项目名称及存储位置,点击下一步,之后的均默认即可。
3.按照以下步骤添加元器件
原理图如下,需要把电阻值改为100
4.添加HEX文件
双击STM32F103R6
找到对应的HEX文件,这里存放的位置,是STM32项目的存放位置下Debug文件夹内
点击确定即可添加
5.设置电源正负极参数
在工具栏找到配置供电网
在电源轨配置对话框中,需要将电源正极由 5V改为 3.3V;将模拟量电源正极VDDA与模拟量电源负极 VSSA分别添加到VCC/VDD网络与GND网络中,否则单片机无法仿真。
点击运行仿真即可实现LED灯闪烁