STM32F103C8T6实现LED点亮
前言
记录第一次点亮LED灯!
一、使用工具
1.LED发光二极管
2.面包板
3.杜邦线
4.STM32F103C8T6单片机
5.USB转TTL USB转串口下载线CH340模块
二、安装
B站参考视频
安装完后的样图:
三、Keil MDK创建项目
1.新建项目
2.新建文件夹
建一个文件夹(这里我取名为入门点亮LED灯
)
新建工程名Project
3.配置
选择芯片STM32F103C8
点击ok,进入主界面,弹出的窗口叉掉
进入项目文件夹,新建三个文件夹Start
,Library
和User
去官网找到固件库文件或者去csdn搜索一下,有教程,复制粘贴到文件夹下
Start
Library
User
回到keil,点击三个箱子的工程文件管理按钮
把默认的组叉掉
点按钮新建三个组,就是上面的文件夹名字
(1)Start
选中Start
,在右边点击Add Files
添加文件,打开Start
文件夹,文件类型选中所有文件,首先添加后缀为md
的启动文件
然后按住Ctrl
,将其他的.c
和.h
文件都选中,添加进去
最后如图
(2)Library
同样选择Library
,打开Library
文件夹,文件类型选中所有文件
,全选,添加
(2)User
同Library
一样,全选
,添加
最后点击ok,这样工程里的组和文件都添加好了
点击魔术棒按钮,打开工程选项,选择C/C++
在include Paths
栏,点击后面的三个点,把我们自己创建的文件夹路径都添加进来,然后ok
在Define
栏上,写上USE_STDPERIPH_DRIVER
在output
中勾上Create HEX File
,点击ok,这样,项目工程就配置好了
4.测试代码
在main.c中写代码,先进行编译调试
调试代码如下(示例):
#include "stm32f10x.h" // Device header
int main(void)
{
while(1)
{
}
}
编译测试
没有错误,说明可以正常运行和写代码
5.点亮LED的代码
代码如下(示例):
#include "stm32f10x.h" // Device header
void LED_config(void)
{
GPIO_InitTypeDef LED1;
//定义一个名为:LED1的结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
//使能GPIOB时钟
//配置GPIOB的工作模式并初始化
LED1.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
LED1.GPIO_Pin = GPIO_Pin_12;//引脚12
LED1.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz
GPIO_Init(GPIOB,&LED1);
}
int main(void)
{
LED_config();
GPIO_SetBits(GPIOB,GPIO_Pin_12);//置1
GPIO_ResetBits(GPIOB,GPIO_Pin_12);//置0
while(1);
}
编译一下,没有错误
四、使用mcuisp下载
先打开mcuisp,点击上方的搜索串口,有提示表明下载成功
选择编译生成的hex
文件
选择DTR的低电平复位,RTS的高电平进BootLoader后,点击开始编程,写入成功!
LED灯成功点亮!
五、总结
第一次点亮LED灯的过程很不容易,中间不管是软件还是实践,均出现了一些细节方面的错误,让我意识到了,硬件这部分需要我们要有足够的耐心和细心,同时要善于查阅资料,有许多不懂的bug或者不懂的连线都可以在网上搜到别人大佬的细心解答。