[STM32F1] 单独对某一位操做

[复制链接]
2121|37
liliang9554 发表于 2022-11-11 19:16 | 显示全部楼层
比如 0x00f啥的
jlyuan 发表于 2022-11-11 19:19 | 显示全部楼层
BSRR
BRR, 相关位只有写1才会起作用,写0无效
//GPIOx_ODR: 端口输出数据寄存器,它的31:16位保留不用,15:0对应x的相应引脚,他只能以16位方式操作。
//GPIOx_BSRR:端口位设置/复位寄存器,它的31:16位是清除位(BR15:BR0),用来复位对应的引脚;15:0位是设置位(BS15:BS0),用来设置对应的引脚。无论是BR还是BS,都是1有效,即相应位为0时无效,这样可以保证操作某个端口时对其他端口无影响。
//GPIOx_BRR:端口位复位寄存器,它的31:16位保留不用,15:0相当于GPIOx_BSRR的高16位即BR。
//事例:将GPIOB的Pin0设置位高,Pin1设置为低(要求,所有操作均对GPIOB的其他端口无影响 )
//     方法1:     GPIOB->ODR|= GPIO_Pin_0;
//                 GPIOB->ODR&=~GPIO_Pin_1;

//     方法2:     GPIOB->BSRR= GPIO_Pin_0;
//                 GPIOB->BSRR= GPIO_Pin_1<<16;

//     方法3:     GPIOB->BSRR= GPIO_Pin_0;
//                 GPIOB->BRR = GPIO_Pin_1;

//注意:从上面可以看出采用方法二有可能将一个端口同时设置和复位,因此STM32规定,如果同时设置了BSx和BRx的对应位,BSx位起作用。
//GPIOB->ODR ^= GPIO_Pin_0; 位取反,异或方式
llljh 发表于 2022-11-11 19:21 | 显示全部楼层
位的逻辑操作。
 楼主| dengdc 发表于 2022-11-11 19:23 | 显示全部楼层
好的,我明天去单位试一下,多谢各位大侠了哈        
Stahan 发表于 2022-11-11 21:06 | 显示全部楼层
用普通的加载/存储指令来对单一的比特进行读写
Henryko 发表于 2022-11-11 21:56 | 显示全部楼层
直接用位带地址操作
Bowclad 发表于 2022-11-11 22:02 | 显示全部楼层
联合体也是位或的逻辑操作
tpgf 发表于 2022-12-7 16:09 | 显示全部楼层
通过对数据进行位的与或非操作即可
heimaojingzhang 发表于 2022-12-7 16:29 | 显示全部楼层
可以通过c语言中的位与、位或以及位非实现目的
keaibukelian 发表于 2022-12-7 16:47 | 显示全部楼层
多少位没有关系 只要使用位操作就行
paotangsan 发表于 2022-12-8 09:03 | 显示全部楼层
在计算机c语言中,有一种操作是单独对位进行操作的
renzheshengui 发表于 2022-12-8 09:35 | 显示全部楼层
使用单独的位操作  或者与0xffff这样子也行
jf101 发表于 2022-12-8 10:10 | 显示全部楼层
看你具体怎么操作,一般成熟MCU都支持位操作的
wakayi 发表于 2022-12-8 10:49 | 显示全部楼层
也可以单独定义bit  然后使用这个参数进行操作
MessageRing 发表于 2022-12-8 18:27 | 显示全部楼层
看一下内核的手册,可以用位带操作的
天天向善 发表于 2024-5-21 09:24 | 显示全部楼层
联合也是位或位的逻辑运算
尽快回复过 发表于 2024-8-31 21:45 | 显示全部楼层
在编程中,有时需要对特定的位进行操作
Uriah 发表于 2024-10-21 07:15 | 显示全部楼层

这些电流环路的布线
帛灿灿 发表于 2024-10-21 09:11 | 显示全部楼层

所有开关电源设计
Bblythe 发表于 2024-10-21 10:14 | 显示全部楼层

输出负载电流环路
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部