datasheet

STM32F1学习-驱动led灯(位操作版本)

2019-07-12来源: eefocus关键字:STM32F1  驱动led灯  位操作版本

首先解释下位带操作(bit-band)的提出:


再学习C51的时候,都会用到位操作,以一位(bit)为数据对象来操作,C51可以简单的使用P2.1 = 1;或者P2.1=0;来操作P2口的第一位。STM32使用寄存器或者库函数操作IO口相对复杂的多。现在STM32的位带操作(bit-band)就是实现这样的功能,操作的对象可以是SRAM或者IO口的一位。


实现位带操作(bit-band)的方法:


把相关的寄存器的某个位映射(膨胀)为一个32位地址,往这个地址里边写数据,可达到配置相关寄存器位置位或者清零目的。


问题是:我们如何知道这个地址呢?我们的外设都是挂载在总线上,总线给外设都分配地址,我们在基地址基础上进行扩展。


相应的公式:(标记,不太理解,后期补充)



位操作实现驱动led灯,方法和寄存器和库函数类似,


第一步都是使能相应的IO端口。(库函数或者寄存器方法都行)


第二步就是配置相应的IO端口。(库函数或者寄存器方法都行)


第三步用位操作对IO口进行设置。


相应的程序段:


关键字:STM32F1  驱动led灯  位操作版本

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/ic467560.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32开发系列之寄存器(一)按键控制LED灯
下一篇:STM32入门系列-位带操作介绍

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

stm32f070 stop 模式 rtc定时启动调试总结

stm32f070 stop 模式 rtc定时启动调试总结。1.在进stoop模式之前一定对gpio进行配置。/* GPIO Ports Clock Enable */__HAL_RCC_GPIOA_CLK_ENABLE();__HAL_RCC_GPIOB_CLK_ENABLE();__HAL_RCC_GPIOF_CLK_ENABLE();/Configure GPIO pins : GPIO_PIN_All/GPIO_InitStruct.Pin = GPIO_PIN_All;GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;GPIO_InitStruct.Pull = GPIO_NOPULL
发表于 2019-07-17

RTC_WakeUp中断唤醒STM32F4停止模式

RTC_WakeUp唤醒STM32F4停止模式(借鉴的是原子哥写的代码): 首先我们先初始化RTC配置://RTC初始化u8 MyRTC_Init(void){    RTC_InitTypeDef RTC_InitStructrue;    u16 retry=0x1FFF;    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//使能PWR时钟    PWR_BackupAccessCmd(ENABLE);//使能后备寄存器    if
发表于 2019-07-17

STM32开发笔记1: STM32F407时钟配置

单片机型号:STM32F407    本文讲解STMF407时钟的使用及其配置方法。        1、STM32F407的分类        a、LSI是低速内部时钟,RC震荡器,频率为32KHz左右。供独立看门狗和自动唤醒单元使用。        b、LSE是低速外部时钟,接频率为32.768KHz的石英晶体。这个主要是RTC的时钟源。        c、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围
发表于 2019-07-17
STM32开发笔记1: STM32F407时钟配置

STM32开发笔记3: STM32F407定时器2-5的使用方法

单片机型号:STM32F407    STM32F4有多种定时器,其中TIM2-TIM5称为通用定时器,具有相似的软件设置及使用方法。在这里还需要注意的是TIM3和TIM4为16位定时器,TIM2和TIM5为32位定时器。    使用TIM2-5可以遵循以下步骤:    1、打开config.h文件,对如下图所示的宏进行设置,设置为0表示不启动相应的定时器,设置为1表示当前定时器定时1ms,设置为2表示当前定时器定时10ms,设置为3表示当前定时器定时100ms,设置为4表示当前定时器为1s。    上图所示的设置结果为,启动定时器2设置为1ms定时
发表于 2019-07-17
STM32开发笔记3: STM32F407定时器2-5的使用方法

STM32开发笔记4: STM32F407 UART的使用方法

单片机型号:STM32F407    STM32F4内嵌4个通用异步/同步收发器(USART1、USART2、USART3、USART6)和两个通用异步收发器(UART4和UART5)。本文讲解此6个串行口,在异步模式下的使用方法,如不加说明,以USART1为例。    可以按照下述步骤,对通用异步串行口进行设置。    1、打开config.h文件,对如下图所示的宏进行设置,0x0c表示将当前串行口UART1的波特率设为115200bps,无效验。      2、打开main.c文件,可以在其中断服务函数中,完成接收逻辑的代码编写
发表于 2019-07-17
STM32开发笔记4: STM32F407 UART的使用方法

STM32开发笔记12: STM32F0引脚使用注意事项

单片机型号:STM32F030R8         本日志介绍STM32F0引脚使用的注意事项:        1、 PC13、PC14和PC15引脚通过电源开关(power switch)直接供给,由于开关仅能提供3mA的电流,所以这些引脚当做输出模式使用时,时受到限制的:当驱动30pF电容时,速度不能超过2MHz;不能当作电流源使用,例如不能直接驱动Led发光。    2、对于RTC组件,第1次上电后,PC13、PC14和PC15用作GPIO,可以通过寄存器设置改变其功能,这些功能不会因为系统复位而复位
发表于 2019-07-17

小广播

何立民专栏

单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved