神农鼎 发表于 2023-3-28 10:37:25

I2C, 主机,从机,演示程序

I2C, 主机,从机,演示程序

YF13205866700 发表于 2023-8-18 14:55:00

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


移位操作在单片机开发中非常重要,下面是delay_init函数的一行代码:


这个操作就是将CTRL寄存器的第1位(从0开始算起)设置为1,为什么要通过左移而不是直接设置一个固定的值呢?

其实这是为了提高代码的可读性以及可重用性。这行代码可以很直观明了的知道,是将第1位设置为1。如果写成:


这个虽然也能实现同样的效果,但是可读性稍差,而且修改也比较麻烦。

1.3 ~按位取反操作使用技巧

按位取反在设置寄存器的时候经常被使用,常用于清除某一个/某几个位。下面是delay_us函数的一行代码:


该代码可以解读为 仅设置CTRL寄存器的第0位(最低位)为0,其他位的值保持不变。

同样我们也不使用按位取反,将代码写成:


可见前者的可读性,及可维护性都要比后者好很多。

1.4 ^按位异或操作使用技巧

该功能非常适合用于控制某个位翻转,常见的应用场景就是控制LED闪烁,如:


执行一次该代码,就会使PB5的输出状态翻转一次,如果我们的LED接在PB5上,就可以看到LED闪烁了。

15574953340 发表于 2024-5-8 12:26:18

没有看到代码哇
页: [1]
查看完整版本: I2C, 主机,从机,演示程序