首页 > 编程知识 正文

大一c语言基础知识大全,单片机知识点

时间:2023-05-04 18:28:42 阅读:9216 作者:4468

在不改变其他位的值的情况下,对某些位设定值。

在该场景单片机的开发中经常使用的是,首先对设置的位用操作员进行清零操作,

|通过操作符设置值。 例如,要改变GPIOA-ODR的状态,首先将寄存器的值清零

操作

** GPIOA-ODR =0XFF0F; //将第 4-7 位清 0

然后再与需要设置的值进行|或运算

GPIOA-ODR |=0X0040; //设定相应位的值,不改变其他位的值**

2.移位操作提高代码的可读性。

GPIOA-ODR|=1 5;

此操作是将ODR寄存器的第5位设置为1。 为什么不直接设定,而是向左移动?

固定的值是多少? 其实,这是为了提高代码的可读性和复用性。 这个代码很直观

明白了。 将第五位设置为1,其他位的值不变。 如果你写的话

GPIOA-ODR=0x0020;

这样的代码可读性非常差,同时很难重用。

3. ~取反操作使用技巧

例如,GPIOA-ODR寄存器的各位用于设定IO端口的输出状态。 在某个时刻,我们

我想把一个位的值设为0,把其他位设为1,简单的方法是直接在寄存器中设定值。

GPIOA-ODR=0xFFF7;

这样的做法会把第三名定为0,但是这样的写法可读性很差。 看看使用逆操作会怎么样。

或实现:

GIOA-ODR=(uint16_t )~) 13;

看了这一行的代码应该很容易理解,ODR寄存器的第3位设定为0,其他位设定为1。 可读性

很强。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。