(一)stm32之CMSIS標准、庫目錄、GPIO


一、CMSIS標准

  ST公司的stm32采用的是cortex-m3內核,內核是整個微處理器的CPU。該內核是ARM公司設計的一種處理器體系架構。內核與外設的關系就像PC上的CPU與硬盤、主板、內存等的關系一樣。

基於cortex系列的處理器內核都是一樣的,區別在於除內核以外的外設的差異,由於這些差異,導致不同處理器移植起來比較麻煩,所以ARM與芯片廠商建立了CMSIS標准,CMSIS架構如下所示:

  CMSIS標准中最主要的是CMSIS核心層;內核函數層中的內核函數寄存器以及地址主要由ARM公司提供;設備外設訪問層核外外設和中斷寄存器地址由芯片生產廠商定義。

二、庫目錄和文件簡介

1、core_cm3.c文件

  在CoreSupport文件夾中有core_cm3.c和頭文件core_cm3.h,它的作用是采用Cortex-M3內核設計的SoC芯片廠商設計的芯片提供了一個進入CM3內核的接口。core_cm3.c中還有一些與編譯器(MDK、IAR等)有關的代碼。較重要的是core_cm3.c中包含stdio.h頭文件,這是一個ANSI C文件,主要作用是提供一些新類型的定義。

2、system_stm32f10x.c文件

  DeviceSupport文件夾下是啟動文件、外設寄存器定義、中斷向量定義層的一些文件,這些文件由ST公司提供。system_stm32f10x.c的主要作用是設置系統時鍾和總線時鍾。

3、stm32f10x.h文件

  這個文件非常重要,是非常底層的文件,包含了寄存器地址和結構體類型的定義,在使用到stm32固件庫的地方都要包含它。

3、stm32f10x_it.c和stm32f10x_conf.h文件

  stm32f10x_it.c這個文件主要是編寫中斷程序的,stm32f10x_conf.h被包含在stm32f10x.h文件中主要是配置外設的頭文件,我們需要什么在這里打開。

4、startup_stm32f10x_hd.s文件

  在這個文件中有一段啟動文件,啟動文件中先初始化系統時鍾,然后才執行主函數,因此我們要注意配置時鍾在這個文件里配置。

三、引腳端口的一些概念

1、一些寄存器

  1)配置寄存器:選擇是輸入還是輸出。

  2)數據寄存器:保存了GPIO的輸入電平或者將要輸出的電平。

  3)為空值寄存器:設置引腳電平為1或0,控制輸出電平。

  4)鎖定寄存器:設置鎖定引腳后,就不能修改其配置。

2、管腳時鍾

  stm32擁有豐富的時鍾系統,我們在配置管教時鍾時,如果該管腳要用到其復用功能,我們必須也要初始化復用功能時鍾。例如要使用PC1口的AD功能:

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);

3、GPIO8種工作模式

  1)四種輸入模式:上拉輸入模式、下拉輸入模式、浮空輸入模式、模擬輸入模式

  上拉輸入模式(GPIO_Mode_IPU):與VDD相連的為上拉電阻,若引腳配置為上拉輸入模式,默認情況下該引腳是高電平。

  下拉輸入模式(GPIO_Mode_IPD):與VSS相連的為下拉電阻,若引腳配置為下拉輸入模式,默認情況下該引腳是低電平。

  浮空輸入模式(GPIO_Mode_IN_FLOATING):沒有上拉電阻也沒有下拉電阻,一般這種模式用於標准的通信協議:IIC、USART等的接收端。

  模擬輸入模式(GPIO_Mode_AIN):使用ADC外設時,接口必須設置為,模擬輸入模式。

  2)四種輸出模式:推挽輸出模式、開漏輸出模式、復用推挽輸出模式、復用開漏輸出模式

  推挽輸出模式(GPIO_Mode_Out_PP):一般用於0和3.3伏的場合。

  開漏輸出模式(GPIO_Mode_Out_OD):一般用於電平不平衡的場合。

  任何一種開漏模式都要接上拉電阻。

  復用推挽輸出模式(GPIO_Mode_AF_PP)

  復用開漏輸出模式(GPIO_Mode_AF_OD)

4、中斷

  stm32有100個引腳,GPIO口總共80個,分為GPIOA~GPIOE 5組,每組16個。每個IO口都可以作為中斷源的輸入,可以配置為上升沿中斷,下降沿中斷,上升沿下降沿中斷


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM