STM32F103RCT6
前言
些久未动笔,实为其他事情的忙活,而且自身亦为初学者,有些问题需要仔细考究才得以发布,因而拖延长期。以下为个人见解,错误之处请多多指教。
注意:以下图片中出现的报错并非每个人都相同,有些仅仅是本人自身的其他错误所致。
此文承接:STM32F103RCT6学习笔记02——新建项目
一、添加文件
在FWLIB-Template文件夹内的User文件夹内建立如下文件。
(其实是有现成的案例的,也就是在当初下载硬件库的时候,其内部带有部分示例)
而在上图所示的文件夹led内建立两个文件——如下图:
注:文件命名随意,在稍后的操作中注意修改就好!
下面介绍的是如何找到现成的文件。而且以上新建的文件是要自己写的,而有些东西自己写起来也很难,而且也不会。哈哈哈哈!
文件目录为:\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\USART\HyperTerminal_Interrupt
或\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template
将以上文件夹内的所有文件复制到FWLIB-Template文件夹内的User文件夹内即可,稍后对其进行修改就可以达到目的。
二、将文件添加到工程界面
将上述文件添加到文件夹USER内,如下图所示。
在上一篇时并没有详细讲解。
三、开始编程
此处我们需要自己编写的文件分别是main.c、bap_led.h、bsp_led.c
1.编辑bsp_led.h
代码如下:
#ifndef __BSP_LED_H
#define __BSP_LED_H
#include"stm32f10x.h"
void LED_GPIO_Config(void);
#endif/*__BSP_LED_H*/
2.编辑bsp_led.c
代码如下:
#include "./led/bsp_led.h"
void LED_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitTStruct;
//打开外设时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
//初始化结构体
GPIO_InitTStruct.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_10;
//GPIO_InitTStruct.GPIO_Pin = GPIO_Pin_10;
GPIO_InitTStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitTStruct.GPIO_Speed = GPIO_Speed_10MHz;
//调用外设初始函数,写寄存器
GPIO_Init(GPIOC, &GPIO_InitTStruct);
GPIO_Init(GPIOA, &GPIO_InitTStruct);
}
3.编辑main.c
代码如下:
#include"stm32f10x.h"
#include "./led/bsp_led.h"
//软件延时
void delay(uint32_t count)
{
for(; count!=0; count--);
}
int main()
{
LED_GPIO_Config();
while(1)
{
GPIO_SetBits(GPIOC, GPIO_Pin_2);
delay(0xfffff);
GPIO_ResetBits(GPIOC, GPIO_Pin_2);
delay(0xfffff);
GPIO_SetBits(GPIOC, GPIO_Pin_10);
delay(0xfffff);
GPIO_ResetBits(GPIOC, GPIO_Pin_10);
delay(0xfffff);
}
}
完成即可开始调试
四.处理“细节”
点击左上角标记的两处其中之一即可开始运行。此处我们会发现bsp_led.c中==#include “./led/bsp_led.h”==会报错——原因是我打错了字母。啊哈哈哈。
下面就开始其他的设置了。
1.点击“魔术棒”
2.进入“C/C++”,添加文件地址
3.需添加三个地址
下图为最后结果。
点击OK完成添加。
4.在“C/C++”处设置
在Define栏中添加如下:
注:最后那一竖线是鼠标光标,不是字符。
上述图片显示的错误不一定是你所遇见的,而是本人自生自身的原因——打错字母、环境没配置、部分设置错误等等等
五.程序的模拟仿真与烧录
1.模拟仿真
①设置
依次点击①②③,并对④进行修改为如下图所示:
②开始仿真
单击下图处,进入仿真界面。
③串口输出查看
由代码main.c文件可知,此处我们玩的是GPIOC的Pin2与GPIOC的Pin10。
依次点击①②③,并在④的位置输入如下所示。输完就按一下键盘的enter即可。
随后就是对他们的显示范围进行修改。
点击一下针脚,然后对上图红圈圈进行设置即可调整显示范围。如果想调成颜色,可以点击旁边的Color的小箭头即可。针脚2亦是如此修改。
④运行程序,观看两个针脚输出的高低电平情况
单击左上角①处即可开始程序运行,观察②区的波形图。
结果如下——波形图上升沿表示针脚输出高电平,反之则输出低电平,既0与1。
注:
①处为停止;
②处为reset,重置。
测试就到此结束。想要退出调试页面只需要再点击一下进入调试页面的按钮即可。
2.烧录
烧录与模拟相似,需要进行些许改变。
①修改设置
依旧是魔法棒,将Use Simulator改为Use ST-Link···。
②设置烧录
依据下图,依次设置。
③生成.hex文件
点击output,将中间位置打勾,随后再次运行程序,使之生成.hex文件。
再次运行,结果如下:
④烧录
单击下图所示处即可开始烧录。
注意:完成上一步后,一定要再次运行程序。
烧录完毕:
部分问题详细解决方法:关于编译过程中出现的部分错误的解决方法——方波输出失败
下节预告:时钟的认识与使用
PS:本文参考来自于野火的教学视频