stm32学习5寄存器编程led显示数字(代码片段)

编程圈子 编程圈子     2023-01-05     445

关键词:


本文对前一节程序稍加改动,用数码管显示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&#x... 查看详情

使用寄存器点亮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板)开始我的旅... 查看详情