|
發布時間: 2019-11-17 20:20
正文摘要:本帖最后由 laopihappy123 于 2019-11-18 12:28 編輯 最近研究pwm ,下載了STC的例程,發現了里面這個指令,這條指令是讓P3M1 清零的 但是,直接讓他清零不就行了 為啥要這么復雜呢...請問..為什么呢? 難道是不能按 ... |
yzwzfyz 發表于 2019-11-18 10:49 嗯嗯 謝謝大佬解答 其實我想問的是為什么他這么寫 而不是直接賦值=0x(數值) |
wulin 發表于 2019-11-18 08:04 奧 是這樣啊! 謝謝 不過為什么不能直接=0x(數值) 呢 而要用移位來操作呢? ![]() |
pcbboy 發表于 2019-11-18 08:03 意思是不能位操作? ![]() |
xuyaqi 發表于 2019-11-18 06:36 對對對,發現我寫錯了 ,其實我就是這個意思,我的疑問是為什么他要這么寫,為什么不能直接寫=0x(數值) 呢 ![]() |
| 道理很簡單:普通P35只有一個IO的功能,而STC的P35有多重功能。所以需要做功能的選擇。 |
|
這不是讓P3.5 清零的指令,是設置P3.5 端口模式為推挽輸出。 P3M0、P3M0是端口模式特殊功能寄存器,不支持位操作。 |
| 這個不是引腳取反,是設置P3 口某IO的狀態,比如高阻,開漏,準雙向,推挽輸出的設置,貌似不能直接簡單取反能設置的。 |
| 這個要看這個芯片的寄存器手冊,他這么做是因為寄存器的移位操作,看起來比較直觀 |
|