IIC通讯实验里面的例程:
不是右移3位 前部分GPIOB->MODER&=~(3<<(9*2)); 是将十进制的3(二进制是11)左移(9*2)个位,也就是将16,17位置置为11,然后取反变为00,再和GPIOB->MODER与运算,此时GPIOB->MODER的16,17位变为00。第一句也就是将GPIOB->MODER的16,17位置0.后部分GPIOB->MODER|=0<<9*2和GPIOB->MODER|=1<<9*2也就是根据参考手册的输入输出给这两个位置赋值,过程和上面是一样的。 应该就是这样吧,,我也是初学,,
3 << 2,则是将数字3左移2位 罪过啊,移位运算符的符、规则没有记清楚,所以就蒙蔽了,在这里记一笔,以后忘记了过来翻翻看看。
|
IIC实例的SDA_In和SDA_Out的代码理解GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=0<<9*2;
最新推荐文章于 2024-08-08 20:59:18 发布