GPIOA高8位输入控制低8位输出(位绑定)

stm32 PA.0-PA.7推揽式输出,50MHZ;PA.8-PA.15 浮空输入, #include "stm32f10x.h" int main(void) { //1.PA.0-PA.7推揽式输出,50MHZ;PA.8-PA.15 浮空输入, GPIOA->CRL=0X33333333; GPIOA->CRH=0X44444444; //2.输入状态反应到对应引脚的输出; while(1){ if((GPIOA->IDR&0X0 阅读详情

位绑定:
可进行位绑定的区域:
  SRAM区: 0x2000 0000 ~ 0x200F FFFF 1M
  片上外设: 0x4000 0000 ~ 0x400F FFFF 1M
SRAM:
  AliasAddr = 0x22000000 + ((A - 0x20000000)*8+n)*4;
       = 0x22000000 + (A- 0x20000000)*32 + n*4;
片上外设:
  AliasAddr = 0x42000000 + ((A - 0x40000000)*8+n)*4;
        = 0x42000000 + (A- 0x40000000)*32 + n*4;

int main()
{
    u32 *PAO[8], *PAI[8];
    int i;

    GPIOA->CRH = 0x44444444;
    GPIOA->CRL = 0x33333333;
    for(i=0; i<8; i++)
    {
        PAO[i]=(u32 *)(0x42000000+(0x4001080c-0x40000000)*32 + i*4);
        PAI[i]=(u32 *)(0x42000000+(0x40010809-0x40000000)*32 + i*4);
    }

    while(1)
    {
        for(i=0; i<8; i++)
        {
            if(*PAI[i] == 1)
                *PAO[i] = 1;
            else
                *PAO[i] = 0;    
        }
    }
}
STM32 GPIO位操作:BSRR与位绑定的硬件加速原理 GPIO位操作是嵌入式开发中最基础也最易被低估的核心能力。其本质是在寄存器层面实现单比特的原子读-改-写,传统方式因依赖‘读-改-写’三步法而存在竞态风险、时序不稳与执行低效等共性缺陷。Cortex-M3架构通过BSRR(位设置/清除寄存器)和位绑定(Bit-Banding)两大硬件机制,将位操作升格为单周期、单总线事务的原子行为,从根本上规避了软件模拟的固有瓶颈。BSRR通过地址复用与域分离实现无读取的定向置位/清零;位绑定则利用地址映射将每个位映射为独立可寻址的32位字,使`PA0 1`具备真正底层语 阅读详情

相关推荐

STM32位用法绑定

//位绑定区域: //SRAM: 0X2000 0000 ~ 0X200F FFFF 1M A的范围 // AliasAddr = 0x2200 0000 + ((A-0X2000 0000)*8+n)*4 (n= 0~7) // = 0x2200 0000+ (A-0X2000 0000)*32+n*4 4个字节,32个位; //片上外设

无穷山色 889

(一)GPIO 编程实验 LED 流水灯控制

7个寄存器 是R1-R16.(当然,里面有很多是分几个模式的,所以总共有37个)类似于单片机的R0-R7.GPXCON,GPXDAT等等是另外的寄存器,应该叫,特殊功能寄存器,类似于单片机的P0,P1,TCON,等等。GPXCON:是X管脚的控制寄存器,控制它们的模式,比如输出模式,输入模式……GPXDAT:是X管脚的数据寄存器,存储它们的数据, GPIO ,通用的输入输出,其引脚可供编程...

weixin_30278237的博客 1768

STM32通用GPIO模拟驱动74HC165实现8位并行输入扩展

一套开箱即用的STM32平台74HC165驱动方案,纯C语言编写,包含74HC165.c和74HC165.h两个核心文件,不依赖HAL或LL库,也不占用SPI等硬件外设。通过普通GPIO引脚模拟时序,完成CLK、LOAD、DATA三线控制,稳定读取8位并行输入数据,适用于按键阵列、拨码开关、IO扩展板等场景。已在STM32F1/F4/H7系列实测验证,用户只需在工程中添加这两个文件,配置好对应GPIO引脚(如PA0为CLK、PA1为LOAD、PA2为DATA),调用HC165_Init()初始化后,即可用H

perl8的博客 238

GPIOA高8位输入控制低8位输出(寄存器操作)

寄存器操作

Thus_的博客 3306

STM32中单独设置GPIO端口高8位/低8位的方法

几天前刚接触stm32的时候, 被单独操作IO口给弄糊涂了, 现记录下, 现在发现其实蛮简单的, 只是刚开始的时候~~~

ESXI 7 :创建统信V20_1050d服务器系统虚拟机

记录一下在 X86 架构创建统信V20_1050d 虚拟机遇到的问题。已遇到的问题有①:常规服务器环境下网络连接失败重点:按照桌面版本,有问题处理简单。

guyuelin123的博客 1968

GPIOA高8位输入控制低8位输出(位运算)

1、位操作 int main() { //高8位浮空输入,低8位推挽输出 GPIOA-&gt;CRH = 0x44444444; GPIOA-&gt;CRL = 0x33333333; while(1) { if((GPIOA-&gt;IDR &amp; 0x0100) == 0x0100) GPIOA-&...

Thus_的博客 3749

Qt for Android:基于libusb实现CH340x串口通信的高效开发方案

本文详细介绍了在Qt for Android环境下,基于libusb实现CH340x串口通信的高效开发方案。通过绕过Android高版本系统的权限限制,利用libusb+JNI技术实现稳定通信,适用于工业手持终端等场景。文章涵盖环境搭建、核心实现、常见问题解决方案及性能调优经验,帮助开发者快速掌握这一关键技术。

weixin_42715608的博客 427

怎么对高八位或低八位写值而不影响其它位,还有怎样单独读取高八位或低八位的值

((u8*)(&GPIOB->ODR))[0] = 0xaa;写低八位  g_io_tempvalue = ((u8*)(&GPIOB->ODR))[1];读高八位 ============================================= 写高八位  GPIOB->CRH &= 0X00000000;  GPIOB->CRH

扫地僧 1万+

Windows Server安装Intel I219-V网卡驱动完整教程

在Windows Server系统上安装Intel I219-V网卡驱动的方法。

小白成长历程 5177

Windows加域迁移避坑指南:Profwiz工具实战中的5个常见问题与解决方案

本文详细解析了使用Profwiz工具进行Windows加域迁移时的5个常见问题及解决方案,包括临时配置文件生成、密码策略冲突、SID冲突等。通过实战案例和优化技巧,帮助IT运维团队高效完成账户配置文件迁移,确保Active Directory环境下的数据完整性和权限无缝衔接。

q9r0s的博客 518

STM32单片机学习4--STM32控制八段码

八段码一般会引出9个引脚,其中7个引脚显示数字(或某些字母),1个显示小数点,1个作为片选端。数码管:实际上是多个LED按照一定顺序排列,并加上遮罩所构成的元件。共阳在这端输出低电平时点亮,高电平时会熄灭,共阴则相反。根据连接方式的不同,数码管分为。共阴和共阳互为对方的按位取反。

贝勒里恩的博客 1265

点云数据增强及预处理

数据增强: 1. random world flip:沿着x或者y轴,翻转点云 点云的x或者y,要翻转 3d box中心的x或者y,要翻转 3d box的朝向要翻转 point segmentation label,点云的相对顺序没有发生变化 2. random_world_rotation:沿着点云原点,旋转点云 点,x,y,绕z轴旋转 3d box,绕z轴旋转,中心和朝向都要变化 point segmentation label,点云的相对顺序没有发生变化 3. random_world_scaling

huang_victor的博客 4011

GPIOA高8位输入控制低8位输出(位绑定 #define)

位绑定与#define

Thus_的博客 1534

python采集keep运动数据

我国2009年确立“全民健身日”;2012年,“广泛开展全民健身运动”写入十八大报告;到2014年上升为国家战略,全民健身的分量越来越重。推动全民健身和全民健康深度融合,通过全民健身实现全民健康。 全民健身运动在我国越来越普及,每天清晨和傍晚时分,城市的广场上、公园里,到处是运动健身的人们,跑步、打球、跳舞、游泳、打太极拳等运动项目十分丰富,人们在运动中获得越来越多的幸福感。 随之诞生出了很多运动app,例如keep,咪咕,微信等,大家可以通过app随时记录自己的运动数据,特别是对于很多的减肥人群来说,通过

Z_suger7的博客 5657

【用unity实现100个游戏之1】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(一)(附源码)

俯视角射击游戏)是一类以俯视视角进行游戏展示的射击游戏。在这种游戏中,玩家控制着一个角色或载具,从俯视的角度上方观察游戏世界,并与敌人进行战斗。这种视角使玩家能够有更好的全局观察和策略性,同时也强调快速反应和精确射击。视角:俯视角度可以是固定的,也可以随着玩家角色的移动而变化,但都允许玩家以全局视角观察整个战场,有利于制定战略和规划行动。射击:玩家通常需要使用各种武器来与敌人进行战斗,包括枪械、爆炸物等。射击动作依赖于玩家的反应速度和准确性。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 7833

stm32学习笔记-GPIO控制的3个方式

GPIO 软件仿真,根据高8位pin输入电平,依次改变低8位电平main.c代码。 #include "stm32f10x.h" int main(void) { GPIOA->CRL = 0x33333333;//0x00000033前面的零是可以省略的 GPIOA->CRH = 0x44444444; while(1) { if((GPIOA->IDR&...

某风吾起的博客 4116

2025年新发表的语音大模型全双工模型/框架/技术

参考该论文,给出2025年新发表的全双工模型或框架或技术下面这份清单专挑、且与“全双工语音对话/同步对话(边听边说、可打断、回馈/相槌、重叠语音)”直接相关的。我也结合你提到的的四大维度(暂停处理、相槌、顺滑换手、打断管理)来点出它们各自的贡献点,便于后续评测与对比。

u013250861的博客 630

1 io口 stm32_STM32如何进行位绑定

在我们学习51单片机的时候,对IO的操作可直接使用P0^1=0,P0^2=1,控制某个IO口就可以单独的对某个端口的IO口进行操作,但在STM32中是不能直接这样用的,为了可以像使用51单片机一样对某个端口的IO口进行直接操作方便我们使用,就出现了位带操作。位绑定理解:STM32对外设端口的操作是通过配置相应的寄存器的位来完成的,位绑定就是把对寄存器某一位的操作映射到某个内存地址,通过位绑定后我们...

weixin_39770226的博客 550

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ARM Cortex-M位绑定技术原理与STM32工程实践

位绑定(Bit-Banding)是ARM Cortex-M内核提供的硬件级原子操作机制,通过地址空间别名映射,将单比特读-改-写转化为单周期、无锁的内存访问。其核心原理基于字节偏移与位号的线性地址映射,天然支持对外设寄存器(如GPIO ODR/IDR)和SRAM变量的精确位控制。相比传统RMW操作,位绑定彻底消除竞态风险,显著降低中断延迟,提升实时系统可靠性。该技术广泛应用于电机控制、通信协议栈、多任务同步等对确定性与时序敏感的嵌入式场景,是STM32等Cortex-M平台实现高效、安全底层驱动的关键能力。

weixin_42591413的博客 247

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

stm32 位绑定 优化设计

#include "stm32f10x.h" #define GPIOA_ODR_A GPIOA_BASE+0X0C #define GPIOA_IDR_A GPIOA_BASE+0X08 #define GPIOB_ODR_B GPIOB_BASE+0X0C #define GPIOB_IDR_B GPIOB_BASE+0X08 #define GPIOC_ODR_C GPIOC_BAS

无穷山色 790

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

STM32之位绑定

有32个美女给你,你32个一起处理是不是有点棘手呀??没事、、那就一个一个“慢慢”来、、为何我这里慢慢要加双引号?因为其实处理一个比处理32个要快很多很多、、好,停住这美好的遐想,来认识下《位绑定》的“地盘”。     位绑定的概念:对于51单片机只有8位,对于M3来说,有32位,也就是说把32位中的某一位通过一个简单的地址的变换的算法来实现对该位的操作,它能够映射到一个地址的空间,也就是说

嵌入式之路 799

自学STM32---GPIO

1、STM32有5组GPIO引脚,分别是GPIOA,GPIOB,GPIOC,GPIOD,GPIOE,每组GPIO有16个引脚。 2、每个引脚都有4个位来配置其端口,可以配置出不同的输入\输出模式 表1配置IO口输出方式 配置模式 CNF1 CNF2 MODE1 MODE0 PxODR寄存器 通用输出 推挽式 0   0  表2 表2 0或1 通用输出 开漏

king110108的专栏 1万+

音诺ai翻译机驱动SPFD5408B 8位并口屏

本文深入解析了音诺AI翻译机中SPFD5408B 8位并口屏的驱动技术,涵盖硬件接口、时序控制、显存管理、双缓冲机制及低功耗优化策略,提出分层驱动架构与未来多屏适配方向,为嵌入式显示系统开发提供完整解决方案。

weixin_35189483的博客 870

STM32-(05):GPIO原理与操作

简单分析:红色框主要是输出电路(O),蓝色框主要是输入电路(I);关于输出电路,可以通过写位设置/清除寄存器来改变输出数据寄存器,或者直接读写输出数据寄存器,有这两种方式,继而通过I/O端口输出。如果打开了复用功能,就走复用的通道,输出控制就是一个锁存器。若寄存器写入1,输出控制的上方输出1,则CMOS管P-MOS导通,CMOS管N-MOS不导通,输出高电平,若寄存器写入0,输出低电平。关于输入...

半个月儿上来的博客 2544

GPIO通用输入输出

GPIO是一种可编程的数字信号引脚,可以通过软件配置为输入模式或输出模式,用于与外部电路进行数字信号交互。:控制LED亮灭、驱动继电器、产生PWM信号等。:读取按键状态、检测传感器信号、接收数字数据等。

2402_88673453的博客 189
上一篇: GPIOA高8位输入控制低8位输出(寄存器操作)
下一篇: GPIOA高8位输入控制低8位输出(位绑定 #define)
dezliu
博客等级 码龄9年 11粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值