哎,歲月不等人,奈何人生有限,學習無涯。好了,話不多說,直入今天的主題。
問題描述:
在做乙個bcm專案時發現乙個問題,那就是在上電的瞬間,發現燈關有閃爍的情況,從現象來看,應該就是bcm控制器在初始化的過程中埠的預設值,導致了外部燈光的閃爍。
問題解決:
首先宣告下,我是一名硬體工程師,但是在大多數人說解決不了這個問題的時候,我打算試一下。怎麼試,當然是寫幾條**驗證了,硬體工程師會寫**?對,我的近期目標就是成為乙個會寫硬體驅動程式的軟硬體工程師,哈哈哈哈。
一般來說我們配置乙個io口為輸出的順序為(以stm32 為例)
1:開啟埠時鐘。
2:配置埠的方向為輸出、輸出的模式、輸出的速率為50m(假定)。
3:寫odr的值
以上為一般的io口輸出的配置方式,但是我們忽略了乙個問題,那就是埠暫存器是有預設值的。如上的配置方式會導致在2之後,埠就會輸出乙個低電平。如果外圍的電路正好是低電平有效,那麼此時就一定會出現乙個閃爍的情況。為了避免這樣的問題,我們必須改變埠配置的順序。注意先配置時鐘這是必須的,因為只有在時鐘開啟的情況下,才允許對時鐘下面的暫存器進行讀寫操作。那麼就只有更改2,3的順序了。實驗證明更改了2,3的順序此問題的確得到解決。
由此:在暫存器的配置中,暫存器的預設值也是很重要的,需要特別的留意,不然就會出現某些問題。
stm32埠初始化
今天上課,點亮數碼管,gpio初始化後,數碼管上有一段亂碼。要讓這亂碼消失掉,需要改變gpio初始化的順序。在gpio埠使能後,要加odr 埠暫存器 控制 gpio inittypedef gpio initstructure 定義乙個結構體 rcc apb2periphclockcmd rcc a...
STM32初始化SD卡流程
1,初始化sdio外設,關閉sdio時鐘。2,上電,開啟時鐘,注意此時時鐘應不能超過400khz,且此時是只有一位資料線,要到初始化完成後再調時鐘與資料線寬度。3,延時最低74個時鐘週期。使時鐘與sd卡穩定,否則會出錯。4,傳送cmd0,需要返回0x01,進入idle狀態 5,為了區別sd卡是2.0...
stm32的初始化注意事項
這是乙個卑微電子資訊學員的開始 寒假開始了,卑微電子資訊學員開始了stm32的學習過程。一.通過stm32的引腳測量正波長和占空比的初始化操作 1.以時鐘1為輸出 以時鐘2為輸入 一.通過stm32的引腳測量正波長和占空比的函式 1.hal tim readcapturedvalue htim2,t...