【STM32】跑马灯实验主要程序代码分析
文章目录
- main.c
- led.c
- led.h
STM32 的 IO 口可以由软件配置成如下 8 种模式:
- 输入浮空
- 输入上拉
- 输入下拉
- 模拟输入
- 开漏输出
- 推挽输出
- 推挽式复用功能
- 开漏复用功能
STM32 的每个 IO 口都有 7 个寄存器来控制。
- 配置模式的 2 个 32 位的端口配置寄存器 CRL 和 CRH;
- 2 个 32 位的数据寄存器 IDR 和 ODR;
- 1 个 32 位的置位/复位寄存器 BSRR;
- 1 个 16 位的复位寄存器 BRR;
- 1 个 32 位的锁存寄存器 LCKR。
main.c
#include "delay.h"
#include "sys.h"
#include "led.h"
//ALIENTEK miniSTM32 开发板实验 1
//跑马灯实验
int main(void)
{delay_init(); //延时函数初始化LED_Init(); //初始化与 LED 连接的硬件接口while(1){ LED0=0;LED1=1;delay_ms(300); //延时 300msLED0=1;LED1=0;delay_ms(300); //延时 300ms}
}
led.c
在配置 STM32 外设的时候,任何时候都要先使能该外设的时钟。
#include "led.h"
//初始化 PA8 和 PD2 为输出口.并使能这两个口的时钟
//LED IO 初始化
void LED_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOD, ENABLE); //使能 PA,PD 端口时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0-->PA.8 端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHzGPIO_Init(GPIOA, &GPIO_InitStructure); //初始化 GPIOA.8GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA.8 输出高GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //LED1-->PD.2 端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHzGPIO_Init(GPIOD, &GPIO_InitStructure); //初始化 GPIOD.2GPIO_SetBits(GPIOD,GPIO_Pin_2); //PD.2 输出高
}
因为 GPIOA 和 GPIOD 的 IO 口的初始化参数都是设置在结构体变量 GPIO_InitStructure 中,因为两个 IO 口的模式和速度都一样,所以我们只用初始化一次,在 GPIOD.2 的初始化的时候就不需要再重复初始化速度和模式了。
led.h
#ifndef __LED_H
#define __LED_H
#include "sys.h"
//LED 端口定义
#define LED0 PAout(8) // PA8
#define LED1 PDout(2) // PD2
void LED_Init(void);//初始化
#endif
【STM32】跑马灯实验主要程序代码分析相关推荐
- stm32跑马灯实验
本文记录STM32mini开发板实验 普通跑马灯 回归GPIO基础知识 每组IO口含有下面7个寄存器,7个寄存器一共可以控制一组GPIO的16个IO口. GPIOx_CRL:端口配置低寄存器 GPIO ...
- 嵌入式系统stm32 跑马灯实验
一.实验目的和实验要求 实验要求:短按实验板扩展板上的按键SW18,依次点亮核心板上D2-D4指示灯.长按按键2秒,实现四个灯循环点亮(跑马灯). 二.实验原理 如上图所示,四个 LED 正极通过电阻 ...
- 【STM32】按键检测实验主要程序代码分析
文章目录 main.c key.c key.h main.c #include "led.h" #include "delay.h" #include &quo ...
- 【STM32】串口收发主要程序代码分析
文章目录 数据发送与接收 串口状态 开启串口响应中断 获取相应中断状态 main.c usart.c usart.h 串口设置的一般步骤可以总结为如下几个步骤: 串口时钟使能,GPIO 时钟使能 串口 ...
- STM32跑马灯实验的基本步骤(库函数)
1.硬件设计 本次用到的硬件只有 LED(DS0 和 DS1).其电路在 ALIENTEK 探索者 STM32F4 开发板 上默认是已经连接好了的.DS0 接 PF9,DS1 接 PF10.所以在硬件 ...
- STM32-GPIO学习-跑马灯实验和按键实验-寄存器版本和HAL库版本
一.stm32跑马灯实验 a.GPIO general purpose input output 通用输入输出端口,可以做输入也可做输出,GPIO端口可通过程序配置成输入或输出. STM32FXXXI ...
- 汇编语言比C51需要效率高,汇编语言与C51语言实现跑马灯实验的比较 -
当前开发单片机应用系统程序主要应用汇编语言和C51语言,采用汇编语言编写可直接操纵系统的硬件资源,能编写出高效运行的程序代码,程序运行速度快.而采用C51语言编写可改善程序的可读性和可移植性,利于产品 ...
- 【stm32】如何把原子哥的代码移植到最小系统板stm32f103c8t6 以跑马灯实验为例
[stm32]如何把原子哥的代码移植到最小系统板stm32f103c8t6 以跑马灯实验为例 外部硬件: stm32仿真编程器 (仿真编制器自己在网上买,不确定买哪个的可以就买我这个,图片上有牌子,自 ...
- 【正点原子MP157连载】第十章 跑马灯实验-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...
最新文章
- 第三次作业-结对编程
- [转载]图的割点、桥与双连通分支
- power designer 连接数据库提示“connection test failed”
- 【百度地图API】暑假放假回老家——城市切换功能
- NeurIPS 2018 中的贝叶斯研究
- 26_多线程_第26天(Thread、线程创建、线程池)
- 2021年中国动态内容交付市场趋势报告、技术动态创新及2027年市场预测
- 检查java程序假死的脚本
- Settings点击Location(位置)后右上角的开关button不会消失
- Hyper-V 2012 R2 故障转移群集之建立域控(AD DS)与加入域
- android的adb命令总结
- 第二章、Linux操作系统及常用命令
- 安川机器人报错_安川机器人伺服驱动器常见的报警代码
- 浏览器pdf朗读插件
- AdventureWorksCycle案例分析
- Python基础-Python实现阶乘计算器
- 【实例学模式】一针见血装饰器模式
- 通过JS代码动态生成HTML表格(Table),Input框,Button按钮.并且通过Input框的值进行查询动态生成数据填写在指定的表格里
- javaSE探赜索隐四<数组>
- 在C和C++定义最大最小整数值