STM32F103RCT6学习笔记03——使用固件库与软件延时输出方波


前言

些久未动笔,实为其他事情的忙活,而且自身亦为初学者,有些问题需要仔细考究才得以发布,因而拖延长期。以下为个人见解,错误之处请多多指教。
注意:以下图片中出现的报错并非每个人都相同,有些仅仅是本人自身的其他错误所致。

此文承接:STM32F103RCT6学习笔记02——新建项目


一、添加文件

  在FWLIB-Template文件夹内的User文件夹内建立如下文件。
(其实是有现成的案例的,也就是在当初下载硬件库的时候,其内部带有部分示例)

User文件内部
而在上图所示的文件夹led内建立两个文件——如下图:

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内,如下图所示。

在上一篇时并没有详细讲解。

USER文件添加

三、开始编程

  此处我们需要自己编写的文件分别是main.cbap_led.hbsp_led.c

1.编辑bsp_led.h

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

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

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++”,添加文件地址

添加文件地址01
添加文件地址02
添加文件地址03

3.需添加三个地址

地址01
地址02
地址03
 下图为最后结果。

最后结果
 点击OK完成添加。

4.在“C/C++”处设置

设置01
 在Define栏中添加如下:

设置02
注:最后那一竖线是鼠标光标,不是字符。
  上述图片显示的错误不一定是你所遇见的,而是本人自生自身的原因——打错字母、环境没配置、部分设置错误等等等

五.程序的模拟仿真与烧录

1.模拟仿真

①设置

 依次点击①②③,并对④进行修改为如下图所示:

设置

②开始仿真

 单击下图处,进入仿真界面。

仿真

③串口输出查看

  由代码main.c文件可知,此处我们玩的是GPIOCPin2GPIOCPin10

依次点击①②③,并在④的位置输入如下所示。输完就按一下键盘的enter即可。

串口监测
结果
  随后就是对他们的显示范围进行修改。
  点击一下针脚,然后对上图红圈圈进行设置即可调整显示范围。如果想调成颜色,可以点击旁边的Color的小箭头即可。针脚2亦是如此修改。
修改范围

④运行程序,观看两个针脚输出的高低电平情况

 单击左上角①处即可开始程序运行,观察②区的波形图。

运行

 结果如下——波形图上升沿表示针脚输出高电平,反之则输出低电平,既0与1。
注:
 ①处为停止;
 ②处为reset,重置。
 测试就到此结束。想要退出调试页面只需要再点击一下进入调试页面的按钮即可。

波形图

2.烧录

 烧录与模拟相似,需要进行些许改变。

①修改设置

 依旧是魔法棒,将Use Simulator改为Use ST-Link···

Use ST-Link···

②设置烧录

 依据下图,依次设置。

01
02

③生成.hex文件

 点击output,将中间位置打勾,随后再次运行程序,使之生成.hex文件。

生成.hex文件
 再次运行,结果如下:

运行结果

④烧录

 单击下图所示处即可开始烧录。
注意:完成上一步后,一定要再次运行程序。

烧录
 烧录完毕:

烧录完毕


部分问题详细解决方法:关于编译过程中出现的部分错误的解决方法——方波输出失败

下节预告:时钟的认识与使用


PS:本文参考来自于野火的教学视频
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值