打印
[STM32F1]

单独对某一位操做

[复制链接]
楼主: dengdc
手机看帖
扫描二维码
随时随地手机跟帖
21
liliang9554| | 2022-11-11 19:16 | 只看该作者 回帖奖励 |倒序浏览
比如 0x00f啥的

使用特权

评论回复
22
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; 位取反,异或方式

使用特权

评论回复
23
llljh| | 2022-11-11 19:21 | 只看该作者
位的逻辑操作。

使用特权

评论回复
24
dengdc|  楼主 | 2022-11-11 19:23 | 只看该作者
好的,我明天去单位试一下,多谢各位大侠了哈        

使用特权

评论回复
25
Stahan| | 2022-11-11 21:06 | 只看该作者
用普通的加载/存储指令来对单一的比特进行读写

使用特权

评论回复
26
Henryko| | 2022-11-11 21:56 | 只看该作者
直接用位带地址操作

使用特权

评论回复
27
Bowclad| | 2022-11-11 22:02 | 只看该作者
联合体也是位或的逻辑操作

使用特权

评论回复
28
tpgf| | 2022-12-7 16:09 | 只看该作者
通过对数据进行位的与或非操作即可

使用特权

评论回复
29
heimaojingzhang| | 2022-12-7 16:29 | 只看该作者
可以通过c语言中的位与、位或以及位非实现目的

使用特权

评论回复
30
keaibukelian| | 2022-12-7 16:47 | 只看该作者
多少位没有关系 只要使用位操作就行

使用特权

评论回复
31
paotangsan| | 2022-12-8 09:03 | 只看该作者
在计算机c语言中,有一种操作是单独对位进行操作的

使用特权

评论回复
32
renzheshengui| | 2022-12-8 09:35 | 只看该作者
使用单独的位操作  或者与0xffff这样子也行

使用特权

评论回复
33
jf101| | 2022-12-8 10:10 | 只看该作者
看你具体怎么操作,一般成熟MCU都支持位操作的

使用特权

评论回复
34
wakayi| | 2022-12-8 10:49 | 只看该作者
也可以单独定义bit  然后使用这个参数进行操作

使用特权

评论回复
35
MessageRing| | 2022-12-8 18:27 | 只看该作者
看一下内核的手册,可以用位带操作的

使用特权

评论回复
36
天天向善| | 2024-5-21 09:24 | 只看该作者
联合也是位或位的逻辑运算

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则