#define SMG_1_ON() PC_ODR_bit.ODR2 = 1 #define SMG_2_ON() PC_ODR_bit.ODR3 = 1 #define SMG_3_ON() PC_ODR_bit.ODR4 = 1 #define SMG_4_ON() PC_ODR_bit.ODR5 = 1 #define SMG_1_OFF() PC_ODR_bit.ODR2 = 0 #define SMG_2_OFF() PC_ODR_bit.ODR3 = 0 #define SMG_3_OFF() PC_ODR_bit.ODR4 = 0 #define SMG_4_OFF() PC_ODR_bit.ODR5 = 0 小白学习单片机,今天看到一个例程中的定义如上,想问一下这些语句的含义,其中ODR2.ODR3是什么意思?还有就是各位大神在实际应用中是上面的方式多还是使用固件库的方式更多? |
ODRX指的的是ODR寄存器的第X位(对于该种写法来说),因为STM8不支持寄存器的直接位操作,所以这样写相当于位操作。至于哪个好,我觉得你习惯就好。我个人习惯直接写寄存器,8位一起操作