一丶原理
STM32F103C8T6芯片简介
根据STM32&STM8产品型号命名规则(参考:STM32单片机最小系统详解)可知: STM32F103C8T6这个命名中:
STM32代表STM32家族,32位MCU; F代表产品类型为基础型; 103代表特定功能为STM32基础型; C代表引脚数为48&49引脚; 8代表内存容量为64KB; T代表封装为QFP; 6代表温度范围为-40到+85℃。
核心板原理图
二、工程的建立
首先新建一个light工程,本实验要求我们用STM32C8T6芯片,所以在建立工程前选择芯片要选择相对应的。 此时,还需要添加启动代码,以及.c 文件等。 启动代码就是一段与硬件相关的汇编代码,ST公司对于不同容量的芯片提供了不同的三个启动文件,分别是: startup_stm32f10x_ld.s,startup_stm32f10x_md.s,startup_stm32f10x_hd.s 我在这里采用startup_stm32f10x_md.s作为启动文件。 接下来我们在工程文件夹右键点击Manage Project Items,可以看到此时只有一个source group组,我们添加一个组用来存放sys.c,delay.c和usart.c文件。
配置Options for Target 'Target 1’ 此时,我们修改全局宏定义在C++处修改宏定义
点击Output,其中select folder for objects是选择生成的hex存放的目录,这里选择存放在建立的OBJ文件夹中,Create HEX File用于生成可执行代码文件(可以用编程器写入单片机芯片的 HEX 格式文件,文件的扩展名为.HEX) 此时工程建立完毕。
三、使用寄存器点亮LED灯
代码实现
我们首先要初始化LED灯的接口并配置时钟 代码如下 led.c
#include "led.h"
void LED_Init(void)
{
RCC->APB2ENR|=1<<2;
RCC->APB2ENR|=1<<3;
GPIOB->CRL&=0XFF0FFFFF;
GPIOB->CRL|=0X00300000;
GPIOB->ODR|=1<<5;
GPIOB->CRL&=0XFFFFFFF0;
GPIOB->CRL|=0X00000003;
GPIOB->ODR|=1<<0;
GPIOA->CRL&=0XFFFFFF0F;
GPIOA->CRL|=0X00000030;
GPIOA->ODR|=1<<1;
}
led.h
#include "sys.h"
void LED_Init(void);
main程序 的编写,根据题目要求需要三种颜色交替闪烁,交替闪烁的实现在电路中就是对应高低电平的配置,接高电平3.3V就是亮,低电平0V就是熄灭,同时三种颜色闪烁之间有间隔需要设置一个延时时间。
int main (void){
RCC_Configuration();
LED_Init();
while(1){
GPIO_SetBits(GPIOA,GPIO_Pin_0);
delay_s(1);
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
delay_s(1);
delay_s(1);
GPIO_SetBits(GPIOB,GPIO_Pin_0);
delay_s(1);
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
delay_s(1);
delay_s(1);
GPIO_SetBits(GPIOC,GPIO_Pin_13);
delay_s(1);
GPIO_ResetBits(GPIOC,GPIO_Pin_13);
delay_s(1);
delay_s(1);
}
}
硬件连接
面包板介绍 面包板是由于板子上有很多小插孔,专为电子电路的无焊接实验设计制造的。由于各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用,所以非常适合电子电路的组装、调试和训练。 整板使用热固性酚醛树脂制造,板底有金属条,在板上对应位置打孔使得元件插入孔中时能够与金属条接触,从而达到导电目的。一般将每5个孔板用一条金属条连接。板子中央一般有一条凹槽,这是针对需要集成电路、芯片试验而设计的。板子两侧有两排竖着的插孔,也是5个一组。这两组插孔是用于给板子上的元件提供电源
烧录
我们烧录运用到的是FlyMcu软件 打开FlyMcu软件,界面如下所示
正确连接好USB-TTL和面包板,注意好对应关系: PA9——RXD PA10——TXD 3.3V接电 GND接地
在FlyMcu界面勾选编程后执行,选择好读取的hex文件路径,在最下角选择RTS低电平复位,DTR高电平进BootLoader
运行展示
参考链接 https://blog.csdn.net/weixin_39938935/article/details/110134353 https://blog.csdn.net/qq_53072511/article/details/120923480
|