GPIO 简单理解就是引脚,英文时(General Purpose Input/Output,通用输入输出)Set:置位 Reset:复位 Write:写 Bit:位 见名知意,这些函数的作用就是翻译过来的意思
GPIOA是一个结构体指针,他指向一个地址为GPIOA_BASE的结构体GPIO_TypeDef。其中GPIOA_BASE就是控制这组IO口的寄存器组的基地址,GPIO_TypeDef是一个结构体,里面的成员变量对应着A组IO的相关控制寄存器,如:GPIOA->ODR;GPIOA->IDR;GPIOA->CRL;GPIOA->CRH等等就是控制A组IO口的寄存器,操作GPIO...
而控制GPIOx->BSRR和GPIOx->BRR就等于间接控制GPIOx->ODR寄存器,而且手册也说了,BSRR、BRR是只写寄存器,写1有效写0无影响,这是什么意思呢;就是对BSRR和BRR寄存器写1就是对相应的IO口电平操作,写0的话IO口电平不变,这样就达到了上面所说的:允许对任何GPIOx进行读、更改的独立访问。比如我...
GPIOB->ODR|=0x0f00; //PA8 输出高 这句话的作用是什么? A8输出了高电平? Bout(8) = 1; 这句也不是输出高电平么? 2020-5-13 09:27:25 评论 举报 赵勇 提交评论 只有小组成员才能发言,加入小组>> STM32 14580个成员聚集在这个小组 加入小组 精选推荐 调试STM32H750的FMC总线读写PSR...
所以要拓展转成32位的 即0x0001,转完就左移pinpos这个变量值的这么多位。(刚刚看到的回答,学习一下)第二个这个就是左移,GPIOA->ODR是控制GPIOA组IO口的输出电平高低,1就是拉高了,但是GPIOA->ODR|=1只是PA.1拉高而已,因此要将值左移5位才能拉高PA.5。(一些自己浅浅的理解)
LED输出反转
1左移5位,然后并第五位(有第0位存在)。。。结果就是将第五位置1
初学STM32,编程语言看不懂,GPIOB->ODR=1<<3,求大神在语法上解释。。。我买辣方便面 富有美誉 9 ODR寄存器赋上(1<<3)这个值。1<<3就是0x0000 0001左移3位,等于0x0000 0008。凶猛的黑灵猫 闻名一方 11 这样写让你一下就能看出是哪一位。。。凶猛的...
((GPIO_TypeDef *) GPIOI_BASE)即 凡后面程序中出现 GPIOI 的地方,把 GPIOI 换成:((GPIO_TypeDef *) GPIOI_BASE) 后再编译。--- 另外:(GPIO_TypeDef *) ... 是强制转换。GPIO什么 替代后就有了 GPIO什么_BASE。 所以 原来的 结构体里面找不到 它们。