stm32架構初認識
剛接觸stm32f373c8t6的芯片,這到底是怎末開發的,應該說它是SOC,內部有一個核心芯片,然後在芯片的外部添加了一些有特殊功能的外設,使開發者能夠完成想要的功能,以stm32f373c
8t6為例,它與別的芯片不同之處便是它有3個16位分辨率的ADC,稱之為SDADC。
剛學stm32時,一頭霧水,這芯片內部到底是怎末構成的,每個外設是怎末為它提供電源的,這些都一無所知。以stm32f373為例,它有三個可以作為系統時鐘的來源,HSI,HSE,以及由PLL得到的時鐘源,AHB,APB上掛接的是外設,AHB上一般掛接的都是高性能的外設,而APB一般掛接的都是對速度要求不太高的外設,APB又分為APB1,APB2。GPIO是掛接在AHB上的,這些信息一般在systemxx.h文件中能夠看到,或者直接看新派你手冊。
以usart為例,要想實現這個串口的功能,首先,你板卡上的外設管腳接到芯片的管腳上,之後為GPIO設置相應的功能,然後使usart與GPIO相連,這樣usart與外設之間就建立了通信的渠道,然後給GPIO和USART分別通上電,再使能一下,將打開的相對應的那個寄存器的相應位置1,那麽便可以工作了。
以sdadc為例,要實現adc轉換的功能,首先,板卡上的外設管腳連接到芯片的管腳上,之後為gpio設置相應的功能,然後使sdadc與gpio相連,這樣sdadc與外設之間就建立了通信的渠道,然後給sdadc和gpio分別上電,再使能一下,將打開的相對應的那個寄存器的相應位置1,就能工作。至於怎末工作的流程線,基本是這樣的,以電位器為例,采集電壓用LCD來顯示,一個電位器外設接到芯片的管腳上,經過GPIO,再經過sdadc,經過adc轉換後的數據存儲在一個寄存器中,然後將這個寄存器的值讀到LCD上顯示出來就可以了。
stm32架構初認識