stm32学习1跑马灯程序之寄存器版本

发布者:TranquilGaze最新更新时间:2017-10-30 来源: eefocus关键字:stm32  跑马灯  程序之寄存器 手机看文章 扫描二维码
随时随地手机看文章

1使能IO口时钟,配置相关寄存器RCC->AHB1ENR

2初始化IO口模式。配置四个寄存器GPIOX_MODER/GPIOX_OTYPER/OSPEEDER/PUPDR

3操作IO口,输出高低电平。配之寄存器GPIOX_ODR或BSRRL/BSRRH

1:RCC是一个结构体指针RCC->AHB1ENR使能寄存器AHB1,使能外部时钟第六位,位5,及设置这一位为1 ,c语言中利用或运算A|=B相当于A=A|B,32位及寄存器两种写法:1)RCC->AHB1ENR|=0x0020

2)RCC->AHB1ENR|=1<<5;1左移5位比较直观

2:GPIOF->MODER=

32位寄存器,一组寄存器对应16个IO口,所以要配置9和10IO口,第一步配置pin9的时候相当于对MODER的第18和19位进行配置因为模式为通用输出,所以配置为01其他位不变,想把其清零然后与01 进行或运算,采用简单方法,将3左移18位

GPIOF->MODER&=~(3<<(2*9));

GPIOF->MODER|=1<<(2*9);

同样的原理配置Pin相应的寄存器,同理参照手册知ODR寄存器仅用到低16位,所以对其进行配置即可,以上123步已经完成。

接下来书写主函数部分,头文件包络#include "stm32f4xx.h"#include"led.h"用到延时函数所以include“delay.h”然后写主函数


关键字:stm32  跑马灯  程序之寄存器 引用地址:stm32学习1跑马灯程序之寄存器版本

上一篇:ESP8266和STM32的程序代码
下一篇:printf重定向到stm32串口

推荐阅读最新更新时间:2024-03-16 15:42

STM32中的一些小坑-ADC通道设置-写FLASH
最近做项目用到STM32F051的片子,遇到了两个小坑。 我的一个项目,需要ADC采集。两路ADC输入通道。PA0-ADCIn0; PA1-ADCIn1. 一开始想使用最简单的方式,单次转换。第一次采In0, 第2次采集In1. STM32F0 的ADC库里面提供了ADC转换的函数:如下: ADC_StartOfConversion(ADC1); while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET); AdcProValRig =ADC_GetConversionValue(ADC1); ADC_StopOfConversion(ADC1);
[单片机]
STM32开启和关闭总中断的方法
__set_PRIMASK(1); //关总中断 __set_PRIMASK(0); //开总中断
[单片机]
stm32 SPI-FLASH W25Q64
W25Q64 SPI配置步骤 1.使能SPI时钟 2.使能GPIO端口时钟 3.初始化GPIO,配置引脚模式 4.初始化SPI 5.使能SPI 6.SPI读写数据 7.查看SPI传输状态 举例 typedef struct { uint16_t SPI_Direction; uint16_t SPI_Mode; uint16_t SPI_DataSize; //数据帧格式 uint16_t SPI_CPOL; //时钟极性 uint16_t SPI_CPHA; //时钟相位 uint16_t SPI_NSS; //软件从设备管理 uint16_t SPI_BaudRa
[单片机]
<font color='red'>stm32</font> SPI-FLASH W25Q64
基于主控STM32控制系统的硬件设计喷绘系统设计
0 引言 由于喷绘机喷绘过程中采用的是压电喷头工作原理,为保证喷绘出图像清晰细腻,喷绘机需要在同一温度下提供稳定的驱动电压对压电晶体进行控制。如何在精准的条件下根据室内温度实时、快速、方便地更改驱动电压和配置数据值得研究。 1 系统设计理念 喷头的驱动电压VDD2(t)取决于喷头容积电压Vrank、基于不同厂家不同颜色的油墨粘滞度而提供每色油墨与标准油墨的修正值Voffset电压、不同颜色的油墨在不同温度下需要的驱动电压补偿值Vdiff(t),即VDD2(t)=Vrank+Voffset+Vdiff(t)。不同颜色的油墨在不同的温度下驱动电压的补偿值Vdiff(t),称之为T-V数据。 不同厂家油墨温压数据不同,厂家会根据
[单片机]
基于主控<font color='red'>STM32</font>控制系统的硬件设计喷绘系统设计
STM32模块化程序】定时器输入捕获实现超声波测距
一、输入捕获介绍 输入捕获模式可以用来测量脉冲宽度或者测量频率。 除了基本定时器,通用和高级均有输入捕获功能。 TIMx_CCMR1(捕获/比较模式寄存器) - 通道1和2的控制 TIMx_CCMR2(捕获/比较模式寄存器) - 通道3和4的控制 以下将分别使用通用定时器和高级定时器实现超声波测距。需要说明的是,代码中的TIM×CH×_CAPTURE_STA我们定义其低八位含义如下: 二、通用/高级定时器实现超声波测距 通用定时器输入捕获以TIM3的CH3为例,对应IO为PB1。PB0实现触发功能 当然还需要配合printf一起使用, 参考这里 完整工程可见github 传送门 timer.c #i
[单片机]
【<font color='red'>STM32</font>模块化<font color='red'>程序</font>】定时器输入捕获实现超声波测距
STM32开启ADC转换
ADON,第一次设置的时候,可以唤醒ADC。 第二次设置ADON,即可执行ADC转换。 所以 对于开启ADC转换,有两种方法:1,可以通过设置ADON开启;2,通过其他触发条件。
[单片机]
<font color='red'>STM32</font>开启ADC转换
基于STM32单片机的端口复用与端口重映射
一、使用复用功能(AF)时,要对端口位配置寄存器进行编程。 1)对于复用的输入功能,配置必须为上拉/下拉或者浮空; 2)对于复用输出功能,配置必须为复用功能输出模式(推挽,开漏)。 对于双向复用功能,必须配置为复用功能输出模式(推挽或者开漏),此时输入驱动器配置为浮空输入模式。 如果将一端口配置成复用输出功能,会将引脚和输入寄存器断开,并和片上外设的输出信号连接。 如果软件将一GPIO 口配置为复用输出功能,但外设没有被激活,它的输出将不确定。 要正常使用GPIO 复用功能,分三步来配置: 第一步,位寄存器配置; 第二步,开启对应的外设时钟; 第三步,激活该端口。 二、端口重映射 优点:优化电路设计;扩展功能,
[单片机]
基于<font color='red'>STM32</font>单片机的端口复用与端口重映射
STM32的ADC单次转换设计
下面分别为库函数和直接操作寄存器的两个范便,我都已测试通过 使用此程序前必要对GPIO设好为模拟输入方式 =====================================库函数版========================================= void AD_CONFIG_SINGLE(void ) { //先配置IO口: ADC_InitTypeDef adcInitStruct; ////PB1 作为模拟通道输入引脚 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE);//使能ADC和GPIOC时钟 //配置ADC: //将ADC配置成非
[单片机]
<font color='red'>STM32</font>的ADC单次转换设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved