作業(yè) 1 和 2 主要使用定時(shí)器的中斷功能。
作業(yè)1
作業(yè) 1 我并不會(huì)使用軟件延遲完成,否則會(huì)影響主循環(huán)中檢查按鍵。因此使用了多達(dá) 3 個(gè)時(shí)鐘,每個(gè)時(shí)鐘管一件事,根據(jù)按鍵動(dòng)作決定誰(shuí)動(dòng)誰(shuí)不動(dòng),有點(diǎn)蠢。
至于同時(shí)按下 2 個(gè)按鍵,我只好自己寫(xiě)了一個(gè)函數(shù),可以一并返回多個(gè)按鍵的狀態(tài)。
項(xiàng)目地址:
https://coding.net/u/ufoshen/p/STM32-homework1/git?public=true
作業(yè)2
讓用時(shí)鐘 TIM2,然而只用這一個(gè)我做不到,因?yàn)楹粑鼰粢揽枯敵?PWM+調(diào)節(jié)占空比才能實(shí)現(xiàn),PWM 需要映射到 LED0 所在的 PB5 上,這個(gè)根據(jù)我查表的結(jié)果,是不能直接重映射過(guò)去的。因此 PWM 就用 TIM3 來(lái)輸出了。
然后 TIM2 身兼多職,在不同模式下干不同的事情,反轉(zhuǎn)燈、反轉(zhuǎn)蜂鳴器、修改占空比。用了三個(gè)全局變量,方便多了。
地址:
https://coding.net/u/ufoshen/p/STM32-homework2/git?public=true
這是我第一次寫(xiě)嵌入式,也不太了解工作的深層原理,只是先參考書(shū)上的案例,自己比葫蘆畫(huà)瓢,把功能實(shí)現(xiàn)了出來(lái)。
歡迎批評(píng)指正喵!