最小系统开发板——利用STM32F103C8T6实现LED流水灯

WeChat:【嵌入式工程师成长日记】

最小系统开发板——利用STM32F103C8T6实现LED流水灯_第1张图片

https://mp.weixin.qq.com/s?__biz=Mzg4Mzc3NDUxOQ==&mid=2247484101&idx=3&sn=87c10024cef454e65399c9430303a6df&chksm=cf43079df8348e8b40596eb04311c5b3bb509554d9c05d29668d453c9407ff5176acf7b992b2&token=3445295&lang=zh_CN#rdicon-default.png?t=M85Bhttps://mp.weixin.qq.com/s?__biz=Mzg4Mzc3NDUxOQ==&mid=2247484101&idx=3&sn=87c10024cef454e65399c9430303a6df&chksm=cf43079df8348e8b40596eb04311c5b3bb509554d9c05d29668d453c9407ff5176acf7b992b2&token=3445295&lang=zh_CN#rd

具体功能实现:

利用STM32F103C8T6实现LED流水灯

使用器件:

8只LED灯、导线若干、stm32f103c8t6、ST-LINK下载器,面包板

最小系统开发板——利用STM32F103C8T6实现LED流水灯_第2张图片

仿真原理图及测试:

仿真原理图

最小系统开发板——利用STM32F103C8T6实现LED流水灯_第3张图片

仿真

最小系统开发板——利用STM32F103C8T6实现LED流水灯_第4张图片

知识介绍

STM32F103C8T6

主要优势在于,封装体积小,价格与家族其他芯片相比较低、相比8位单片机性能更优,如果会使用STM32系列芯片,可做为替代方案、性价比较高、而且可以满足小项目和初学的需求。

■ 内核:ARM32位Cortex™-M3 内核

最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHz (Dhrystone2.1) − 单周期乘法和硬件除法

■ 低功耗

− 睡眠、停机和待机模式

− VBAT为RTC和后备寄存器供电

■ 多达80个快速I/O端口

− 26/37/51/80个I/O口,所有I/O口可以映像到16个外部中断;几乎所有端口均可承受5V信号

ST-LINK下载接线图:

最小系统开发板——利用STM32F103C8T6实现LED流水灯_第5张图片

代码介绍及配置:

最小系统开发板——利用STM32F103C8T6实现LED流水灯_第6张图片

以上是固定代码,我们选择的是GPIOA口进行输出,接下来解释一下GPIO配置:

GPIO_MODE:

GPIO_Mode_IPD 下拉输入
GPIO_Mode_IPU 上拉输入
GPIO_Mode_Out_OD 开漏输出
GPIO_Mode_Out_PP 推挽输出
GPIO_Mode_AF_OD 复用开漏输出
GPIO_Mode_AF_PP 复用推挽输出

GPIO_SPEED:

GPIO_Speed_10MHz 最高输出速率10MHz
GPIO_Speed_2MHz 最高输出速率2MHz
GPIO_Speed_50MHz 最高输出速率50MHz

主要代码(C语言)KEIL5实现:

#include "stm32f10x.h"                  // Device header

#include "Delay.h"

int main(void)

{

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);


while (1)

{

GPIO_Write(GPIOA, ~0x0001); //0000 0000 0000 0001

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0002); //0000 0000 0000 0010

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0004); //0000 0000 0000 0100

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0008); //0000 0000 0000 1000

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0010); //0000 0000 0001 0000

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0020); //0000 0000 0010 0000

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0040); //0000 0000 0100 0000

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0080); //0000 0000 1000 0000

Delay_ms(100);

}

}

问题解答:

Q:连接ST-LINK后如何进KEIL5进行烧录

最小系统开发板——利用STM32F103C8T6实现LED流水灯_第7张图片

A:点击图标LOAD,可能会弹出对话框,选择“no”,随后hex文件就会直接烧录进单片机。完成后按下单片机上的复位按钮即可运行。

WeChat:【嵌入式工程师成长日记】

https://mp.weixin.qq.com/s?__biz=Mzg4Mzc3NDUxOQ==&mid=2247484101&idx=3&sn=87c10024cef454e65399c9430303a6df&chksm=cf43079df8348e8b40596eb04311c5b3bb509554d9c05d29668d453c9407ff5176acf7b992b2&token=3445295&lang=zh_CN#rdicon-default.png?t=M85Bhttps://mp.weixin.qq.com/s?__biz=Mzg4Mzc3NDUxOQ==&mid=2247484101&idx=3&sn=87c10024cef454e65399c9430303a6df&chksm=cf43079df8348e8b40596eb04311c5b3bb509554d9c05d29668d453c9407ff5176acf7b992b2&token=3445295&lang=zh_CN#rd

你可能感兴趣的:(单片机,stm32,嵌入式硬件)