在配置定時器使用瞭如下語句:
TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
不禁疑問:這與TMOD=0x20有什麼區別呢? 不都是把0x20給TMOD嗎?
NO。當只需要改變TMOD中的某一位時,就用 |=,如果直接用 = 賦值,會導致TMOD其它位被改變。
如,TMOD=0x20就使除了位5爲1,別的位都爲0了,這在程序中可不是我想看到的。
在配置定時器使用瞭如下語句:
TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
不禁疑問:這與TMOD=0x20有什麼區別呢? 不都是把0x20給TMOD嗎?
NO。當只需要改變TMOD中的某一位時,就用 |=,如果直接用 = 賦值,會導致TMOD其它位被改變。
如,TMOD=0x20就使除了位5爲1,別的位都爲0了,這在程序中可不是我想看到的。
說明: 以下介紹示例的MCU地址空間如下: ROM空間爲:0x0000 0000 – 0x0000 8000 RAM空間爲:0x2000 0000 – 0x2000 2000
STM32中enumeration特殊使用方法 定義如下: /*! * STM32 Pin Names */ #define MCU