使用Keil MDK编译stm32简单程序(点亮LED灯)
本文利用STM32F103C8T6和USB转TTL成功点亮LED灯
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或者不懂的连线都可以在网上搜到别人大佬的细心解答。
参考资料
更多推荐



所有评论(0)