【STM32 嵌入式课程实验】实验一 单个LED灯的闪烁
实验一 单个LED灯的闪烁
1.1系统功能
实现对STM32开发板上单个LED灯的循环点亮与熄灭,使其呈现不断闪烁的状态。
1.2系统组成
由STM32开发板及板上的LED灯组成,STM32为STM32F103RB芯片的NANO版本,通过编写软件,用GPIO端口控制LED灯闪烁。
1.3系统设计
1.3.1硬件设计
本设计采用STM32上其中一个GPIO口来控制对应的一个LED灯的点亮和熄灭,其芯片引脚及LED灯分布如下图1、2。
图1 STM32芯片引脚分布
图 2 LED灯模块分布
1.3.2软件设计
该实验程序主要由系统初始化,包括GPIO端口初始化和系统时钟初始配置,和主函数组成。主函数负责控制LED灯的亮灭,亮灭间隔需要延时。
图 3 程序基本流程图
1.4调试与结果
将代码烧录后,LED灯0开始循环点亮熄灭,满足实验要求。如下图4、5.
图 4 LED灯点亮
图 5 LED灯熄灭
1.5实验主要代码
#include "stm32f10x_lib.h" ErrorStatus HSEStartUpStatus;
void LED0(void);
void LED1(void);
void Delay(vu32 nTime);
void RCC_Configuration(void);
void GPIO_Configuration(void);int main(void)
{RCC_Configuration(); //配置系统时钟GPIO_Configuration(); //配置GPIO端口for(;;){GPIOC->ODR = ~(0x01); //点亮LED0Delay(5000000); //延时GPIOC->ODR = 0xff; //熄灭LED0Delay(5000000); //延时}
}void RCC_Configuration(void) //系统时钟配置
{RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON);HSEStartUpStatus = RCC_WaitForHSEStartUp();if(HSEStartUpStatus == SUCCESS){RCC_HCLKConfig(RCC_SYSCLK_Div1); RCC_PCLK2Config(RCC_HCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div2); FLASH_SetLatency(FLASH_Latency_2);FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);RCC_PLLCmd(ENABLE);while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);while(RCC_GetSYSCLKSource() != 0x08);} RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
}
void GPIO_Configuration(void) //系统GPIO端口配置
{GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //打开LED0对应的GPIO 0GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//配置推免输出为50MHzGPIO_Init(GPIOC, &GPIO_InitStructure);
}void Delay(vu32 nCount) //延时
{for(; nCount != 0; nCount--);
}
【STM32 嵌入式课程实验】实验一 单个LED灯的闪烁相关推荐
- stm32单片机屏幕一直闪_stm32实现LED灯的闪烁
stm32单片机设计比较复杂,所以,对于外设的控制就相对于51单片机来说,就复杂很多.那么如何用stm32单片机点亮LED呢?通过一下几个步骤,就可以实现LED的闪烁.这里使用的stm32型号是stm ...
- 【STM32 嵌入式课程实验】实验二 流水灯控制
实验二 流水灯控制 2.1 系统功能 使用STM32板载的八个LED灯,实现流水灯功能. 2.2系统组成 由STM32开发板及板上的LED灯组成,STM32为STM32F103RB芯片的NANO版本, ...
- 嵌入式实验-汇编点亮LED 灯
嵌入式实验-汇编点亮LED 灯 一.实验目的 通过本次实验,使学生能够操作 S5PV210实验平台,搭建并使用交叉编译环境,具备初步的嵌入式裸机平台应用开发能力. 二.实验原理 由原理图可知,点亮 2 ...
- STM32F103C8T6核心板控制器下,通过电路搭建实现LED灯轮流闪烁的实验操作
通过STM32F103C8T6+面板板+3只红绿蓝LED,搭建了电路,控制LED灯实现轮流闪烁 文章目录 通过STM32F103C8T6+面板板+3只红绿蓝LED,搭建了电路,控制LED灯实现轮流闪烁 ...
- 3.基础实验-实验01-点亮一个LED灯
目录 3.1 实验01-点亮一个LED灯 3.1.1 STM32CubeMX软件配置 3.1.2 代码编写 3.1.3 编译与下载程序 3.1.4 查看实验结果 3.1 实验01-点亮一个LED灯 ...
- 【嵌入式系统开发09】重做LED灯以及串口通信查询
[嵌入式系统开发09]重做LED灯以及串口通信查询 要求:安装 stm32CubeMX,配合Keil,分别尝试使用寄存器地址方式(汇编或C,不限) 和HAL库这两种方式,完成下列任务: 1.LED灯重 ...
- AT89C52利用定时器控制单个led灯闪烁
AT89C52利用定时器控制单个led灯闪烁 keil芯片选择AT89C52 新建一个.c文件,将代码拷贝进去,然后保存. 然后将保存的.c文件加载到工程项目里面去. 设置好生产hex文件,就可以编译 ...
- 嵌入式开发学习之--点亮LED灯(上)
在嵌入式学习里,点亮LED灯的地位就如同编程语言学习里的"hello world",是每个初学者都必须经历的一关,因为点亮了LED灯,至少可以说明几件事: 1.开发环境没问题,包括 ...
- Holtek合泰单片机 《四》 从TM定时器中断到led灯1s闪烁
跳过中断直接讲TM中断是不是有些超前了? 由于最近参加了一个项目,真是忙的不要不要的,没办法,只有抽了点放假的时间来更新下自己的博文,希望对正在学习HT单片机的同学有帮助. 重庆合泰初赛是5月15日, ...
最新文章
- 1.4 w字,25 张图让你彻底掌握分布式事务原理
- 开发人员拟在澳洲建立一座价值5000万美元的BCH科技园
- 2020-2021年面向中小学生的全国性竞赛活动名单的公示
- 《漫画算法2》源码整理-7 第K大的数字
- JZOJ 5474. 【NOIP2017提高组正式赛】时间复杂度
- 【计算机图形学课程】一.MFC基本绘图函数使用方法
- EventBus设计与实现分析——事件的发布
- titanium开发教程-04-10移动rows
- linux事务隔离级别,事务的隔离级别(Transaction isolation levels)2
- 【2007-3】【分硬币】
- 【Java编程思想笔记】-集合1
- 解决由于一个软件限制策略的阻止,windows无法运行此程序cmd.reg
- static_cast vs dynamic_cast
- 【BIEE】超过了已配置的最大允许输入记录数
- 什么是正则表达式 ?
- MATLAB利用小波分析提取周期
- Ubuntu中挂载使用nas服务器
- 深圳小汽车车牌竞拍价格预测
- Github标星的Chrome 插件,开发者必备
- 朴素贝叶斯算法原理以及python实现