IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32F103寄存器方式点亮LED流水灯 -> 正文阅读

[嵌入式]STM32F103寄存器方式点亮LED流水灯

一丶原理

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"
//初始化 PB1 PC4 PD8为输出口.并使能这三个口的时钟 
//LED IO 初始化
void LED_Init(void)
{
	RCC->APB2ENR|=1<<2; //使能 PORTA 时钟 
	RCC->APB2ENR|=1<<3; //使能 PORTB 时钟 
//	RCC->APB2ENR|=1<<4; //使能 PORTC 时钟
//	RCC->APB2ENR|=1<<5; //使能 PORTD 时钟	
	GPIOB->CRL&=0XFF0FFFFF; 
	GPIOB->CRL|=0X00300000;//PB.5 推挽输出 
	GPIOB->ODR|=1<<5; //PB.5 输出高 
	
	GPIOB->CRL&=0XFFFFFFF0; 
	GPIOB->CRL|=0X00000003;//PB.0 推挽输出 
	GPIOB->ODR|=1<<0; //PB.0 输出高
	
	GPIOA->CRL&=0XFFFFFF0F; 
	GPIOA->CRL|=0X00000030;//PA.1 推挽输出 
	GPIOA->ODR|=1<<1; //PA.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);	//这个就是将IO口设置为高电平就是3.3V
   
             delay_s(1);
         GPIO_ResetBits(GPIOA,GPIO_Pin_0);//这个就是将IO口设置为低电平就是0V
         delay_s(1);  
     //  维持上面的状态1s,因为咱们LED灯负极接电源负极,此时单片机输出0V,LED两端没有电压差值,所以LED灯不会亮
		delay_s(1); //延时1秒
		
				 GPIO_SetBits(GPIOB,GPIO_Pin_0);	//这个就是将IO口设置为高电平就是3.3V
   
             delay_s(1);
         GPIO_ResetBits(GPIOB,GPIO_Pin_0);//这个就是将IO口设置为低电平就是0V
         delay_s(1);  
     //  维持上面的状态1s,因为咱们LED灯负极接电源负极,此时单片机输出0V,LED两端没有电压差值,所以LED灯不会亮
		delay_s(1); //延时1秒

		
				 GPIO_SetBits(GPIOC,GPIO_Pin_13);	//这个就是将IO口设置为高电平就是3.3V
   
             delay_s(1);
         GPIO_ResetBits(GPIOC,GPIO_Pin_13);//这个就是将IO口设置为低电平就是0V
         delay_s(1);  
     //  维持上面的状态1s,因为咱们LED灯负极接电源负极,此时单片机输出0V,LED两端没有电压差值,所以LED灯不会亮
		delay_s(1); //延时1秒
	}
}

硬件连接

在这里插入图片描述
面包板介绍
面包板是由于板子上有很多小插孔,专为电子电路的无焊接实验设计制造的。由于各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用,所以非常适合电子电路的组装、调试和训练。
整板使用热固性酚醛树脂制造,板底有金属条,在板上对应位置打孔使得元件插入孔中时能够与金属条接触,从而达到导电目的。一般将每5个孔板用一条金属条连接。板子中央一般有一条凹槽,这是针对需要集成电路、芯片试验而设计的。板子两侧有两排竖着的插孔,也是5个一组。这两组插孔是用于给板子上的元件提供电源
在这里插入图片描述

烧录

我们烧录运用到的是FlyMcu软件
在这里插入图片描述
打开FlyMcu软件,界面如下所示
在这里插入图片描述

正确连接好USB-TTL和面包板,注意好对应关系:
PA9——RXD
PA10——TXD
3.3V接电
GND接地

在FlyMcu界面勾选编程后执行,选择好读取的hex文件路径,在最下角选择RTS低电平复位,DTR高电平进BootLoader
在这里插入图片描述

运行展示

QQ视频20211024195353

参考链接
https://blog.csdn.net/weixin_39938935/article/details/110134353
https://blog.csdn.net/qq_53072511/article/details/120923480

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-26 12:22:05  更:2021-10-26 12:23:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:26:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码