以 STM32最小系统核心板(STM32F103C8T6)+面板板+3只红绿蓝LED 搭建电路,使用GPIOB、GPIOC、GPIOD这3个端口控制LED灯(最高时钟2Mhz),轮流闪烁,间隔时长1秒。
一、通过工程模板建立工程
由于自己建立工程比较复杂,且对于初学者来说较为困难,所以我们选择网上已经编写好的工程模板来建立本项目,此处选用“洋桃电子”建立的STM32F103通用工程模板 工程模板下载链接 下载完成后解压,通过Keil打开解压后的工程文件,项目结构如下:
二、编码
1.新建led.c以及led.h文件
(1)在工程目录下新建led.c文件 代码如下:
#include "led.h"
void LED_Init(void){
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_ResetBits(GPIOC,GPIO_Pin_15);
}
(2)在工程目录下新建led.h文件 代码如下:
#include "stm32f10x.h"
void LED_Init(void);
(3)将led.c文件添加至Hardware目录下
2.将led.c文件路径添加至变量中
如果不将led.c文件的路径添加至变量,那么在编译时编译器会找不到led.h
3.编写main.c
代码如下:
#include "stm32f10x.h"
#include "delay.h"
#include "led.h"
int main (void){
RCC_Configuration();
LED_Init();
while(1){
GPIO_SetBits(GPIOA,GPIO_Pin_0);
delay_ms(500);
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
delay_ms(500);
GPIO_SetBits(GPIOB,GPIO_Pin_0);
delay_ms(500);
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
delay_ms(500);
GPIO_SetBits(GPIOC,GPIO_Pin_15);
delay_ms(500);
GPIO_ResetBits(GPIOC,GPIO_Pin_15);
delay_ms(500);
}
}
三、仿真观察波形
1.工程选项设置
2.逻辑分析仪配置
(1)打开逻辑分析仪 (2)配置管脚 (3)运行并观察波形
四、搭建电路
1.安装驱动与串口调试助手
(1)安装驱动 一直下一步即可 (2)下载串口调试助手
2.硬件接线
(1)TTL与核心板RXD与TXD的接线方式
仔细观察USB-TTL和核心板,可以看到USB-TTL身上有五个管脚,分别是5V电源管脚、3.3V电源管脚、TXD(数据传送)管脚、RXD(数据接收)管脚、GND管脚。要实现PC与板子相连接就要让对应管脚连接起来,即板子的TXD接USB-TTL的RX,RXD接TX。
通过查询STM32F103C8T6的资料可以发现,PA9对应TX,PA10对应RX。 所以应该将TTL的RXD接核心板PA9;TTL的TXD接核心板PA10
(2)核心板BOOT配置 注意核心板上有两个跳线帽,分别在BOOT0和BOOT1上,我们要烧录程序之前必须改变模式BOOT0和BOOT1模式为系统存储器模式。 BOOT配置如下:
BOOT0 | BOOT1 | 启动方式 |
---|
0 | X | 内部FLASH | 1 | 0 | 系统储存器 | 0 | 1 | 内部SRAM |
最后将LED灯接至核心板B0、A0、C15管脚(长脚为正极短脚为负极),再将核心板地极与LED灯负极串联
接线方式如下图:
3.烧录程序
(1)程序配置 安装好串口驱动后可以在计算机设备管理器中看到: 串口调试助手配置如下: (2)烧入程序并运行 点击开始编程 烧入完成后会自动开始运行
参考
用STM32F103C8T6制作流水灯 STM32寄存器的简介、地址查找,与直接操作寄存器 STM32从地址到寄存器
|