关键词:
STM32 学习5 寄存器编程LED显示数字
本文对前一节程序稍加改动,用数码管显示0-9的数字。
一、使用宏定义GPIO要显示的位
// 定义一个宏可以设置显示或关闭显示
// 高16位设置8bit全打开
// 低16位通过求反关闭不显示的位
#define onArray(set) (GPIOC_BSRR = 0xFF0000 | (~set & 0xFFFF))
二、定义数码管显示数字
int matrix[] = 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;
以上分别定义了0-9的八段码显示数值,与二进制位对应。
三、主体程序
#include"stm32f10x.h"
#include "stm32f10x_lib.h"
#include<stdio.h>
// 定义一个宏可以设置显示或关闭显示
#define onArray(set) (GPIOC_BSRR = 0xFF0000 | (~set & 0xFFFF))
void SystemInit()
// 简单的延迟操作
void delay(u32 i)
while(i--);
void delayMs()
delay(0xfffff);
void init(int position)
// 设置通用推挽输出
GPIOC_CRL &= ~(0x0f<<(4*position));
GPIOC_CRL |= (3<<4*position);
/**
关闭一个引脚
*/
void off()
onArray(0x00);
void light(int number)
int matrix[] = 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;
onArray(matrix[number]);
int main(void)
int j;
// 打开GPIOC时钟
RCC_APB2ENR |= 1<<4;
// 初始化8个引脚
for(j=0;j<8;j++)
init(j);
// 灭灯
off();
while(1)
// 轮换显示0到9
for(j=0;j<10;j++)
light(j);
delayMs();
off();
delayMs();
stm32学习4寄存器编程跑马灯示例(代码片段)
STM32学习4寄存器编程跑马灯示例一、说明二、项目架构三、源代码及说明1.跑马灯2.显示数值一、说明本章节对前一篇内容进行适当修改,通过寄存器操作控制开发板8个LED灯点亮、熄灭。二、项目架构三、源代码及说明1.跑马... 查看详情
stm32野火教程学习笔记(代码片段)
...编程方法有两种。一个是类似于51单片机的直接控制片内寄存器和i/o口的寄存器编程,一个是为了降低开发难度给开发者提供了巨大帮助的固件库编程。今天所学习的是更加底层的寄存器编程。尽管在开发的时候,我们用... 查看详情
stm32学习笔记——点亮led
...笔记——点亮LED本人学习STM32是直接通过操作stm32的寄存器,使用的开发板是野火ISO-V2版本;先简单的介绍一下stm32的GPIO;stm32的GPIO有多种模式: 1.输入浮空 2.输入上拉 3.输入下拉 4.模拟输入 5.开漏输出... 查看详情
stm32如何新建工程+寄存器点亮led灯(代码片段)
STM32新建工程+寄存器点灯一:如何新建工程1:下载芯片支持包Keil.STM32Fxxxx.pack文件2:打开KEIL5加载Keil.STM32Fxxxx.pack文件3:添加编写代码文件main.c以及添加启动文件二:如何寄存器点灯1:看单片机的原理... 查看详情
stm32学习笔记(代码片段)
...断NVIC基本结构EXIT简介代码配置GPIO输出单独操作输出数据寄存器的某一位的方法GPIO8种模式代码操作RCC常用函数GPIO常用函数推挽开漏STM32笔记ADCADC(Analog-DigitalConverter)模拟-数字转换器ADC可以将引脚上连续变化的电压转换为内存中... 查看详情
stm32学习12库函数实现静态数码管显示(代码片段)
STM32学习12库函数实现静态数码管显示一、说明二、数码管显示方式三、静态显示的实现1.封装数码管操作函数smg.hsmg.c2.主函数一、说明前面已经多次学习到点亮LED的操作。我使用的这个开发板,数码管与LED是连接在一起的... 查看详情
stm32学习7库函数点亮led(代码片段)
STM32学习7库函数点亮LED一、功能说明二、实现1.定义LED的引脚,我的开发板使用GPIOC2.定义所有引脚,使用或操作:3.关键函数说明2.3.1RCC_APB2PeriphClockCmd2.3.2GPIO_InitGPIO_PinGPIO_SpeedGPIO_Mode2.3.3函数GPIO_Write2.3.4GPIO_SetBits2.3.5 查看详情
stm32学习7库函数点亮led(代码片段)
STM32学习7库函数点亮LED一、功能说明二、实现1.定义LED的引脚,我的开发板使用GPIOC2.定义所有引脚,使用或操作:3.关键函数说明2.3.1RCC_APB2PeriphClockCmd2.3.2GPIO_InitGPIO_PinGPIO_SpeedGPIO_Mode2.3.3函数GPIO_Write2.3.4GPIO_SetBits2.3.5 查看详情
嵌入式08stm32f103c8t6寄存器方式借助面包板点亮led流水灯详解(代码片段)
...始化GPIO,点亮LED灯三、工程文件模板的建立四、使用寄存器点亮LED灯——代码部分1、硬件连接设计2、打开之前建立的工程模板3、代码编写4、硬件连接5、烧录:STM32F103C8T6与PC端连接五、使用寄存器点亮LED灯——电路部... 查看详情
stm-32:gpio输出-点亮led-流水灯-蜂鸣器(代码片段)
...件解析1.2.1保护二极管1.2.2P-MOS、N-MOS管1.2.3数据输入输出寄存器1.2.4复用功能输出1.2.5模拟输入输出1.3GPIO的工作模式1.3.1输入模式(模拟/浮空/上拉/下拉)1.3.2输出模式(推挽/开漏)1.3.3复用功能(推挽/开漏)1.3.4小结二、GPIO端口的配置2.1... 查看详情
zigbee学习----点亮led(代码片段)
...原理分析 ①:看过好多博客,刚开始都是直接讲配置寄存器,但我觉得需要且有必要了解一下cc2530这款单片机。zigbee就在人家上面搭载嘛 CC2530微控制器采用QFN40封装,有40个引脚。其中,有21个数字I/O端口,其中P0和P... 查看详情
stm32使用tim闪烁led——输出比较方式(代码片段)
...出比较器可以直接操作对应的GPIO,在计数器值等于比较寄存器的值时,对应的GPIO可以有以下四种动作 无动作 激活 取消激活 翻转激活电平由输出极性寄存器决定将LED置于定时器输出比较对应的GPIO上,对它的操作... 查看详情
stm32f103学习日程记录(代码片段)
目录相关芯片的背景: 选用学习模块:使用固件库点亮LED:1.首先打开官方给的相关板子的原理图,找到LED的电路原理图2.代码设计2.1编程要点2.2LED引脚宏定义2.3bsp板级支持包的编写相关芯片的背景: 学习STM... 查看详情
stm32存储器映射-寄存器基地址-偏移(代码片段)
前言在学习STM32的时候,我们看到很多的寄存器编程,比方说LED灯://GPIOB.5端口输出高电平GPIOB->ODR|=1<<5;//PB.5输出高 GPIOE->ODR|=1<<5;//PE.5输出高//GPIOB端口全部输出高电平*(unsignedint*)(0x40010C0C)=0xFFFF... 查看详情
使用寄存器点亮led——编程实战
...了,而stm32中,就一个简单的GPIO,我们也需要配置好几个寄存器,而且,就算配置好GPIO寄存器,我们还必须有一步不能缺少的操作,那就是开启对应GPIO的时钟。在stm32的编程中,开启对应时钟是必不可少的一个操作,而且,开... 查看详情
嵌入式stm32f1学习-驱动led灯(寄存器版本)
...置成8种模式,三种最大输出速度。也就是每组IO口有7个寄存器,也就是说7个寄存器可以控制一组16个IO口。这个7个寄存器分别是:位配置寄存器,主要是:模式的选择以及输出速度的选择。GPIOx_CRLGPIOx_CRH数据寄存器,主要是:... 查看详情
以stm32f407为例,学习cortex-m4通用寄存器的用法(代码片段)
...点后,如下图所示,进入add函数前,将函数输入参数存入寄存器,r0=6,r1=5,r3=4,r2=3,由于输入参数只能用r0-r4这4个寄存器,因此,需要将r0和r1存入堆栈,然 查看详情
STM32F1 GPIO寄存器LED不闪烁,一直保持
】STM32F1GPIO寄存器LED不闪烁,一直保持【英文标题】:STM32F1GPIOregistersLEDnotblinking,juststayingonwholetime【发布时间】:2021-11-1318:21:08【问题描述】:我从微控制器开始我的旅程,我正在使用STM32F1(带有STM32F103RB的Nucleo板)开始我的旅... 查看详情