原子教你玩STM32_2020.5.9

DMA:動態數據存儲,爲CPU減負,直接進行數據交換

 

芯片內部結構

 

 

BOOT0 BOOT1

  0     X :從片上Flash代碼區域啓動,執行固件

  1     0 :系統存儲器BootLoader區域,引導進行串口1下載

  1     1 :執行SRAM區域代碼

 

先RST低,DTR高,所以RESET低電平復位,單片機復位

後RST低,DTR低,此時RESET爲高復位結束,B0爲高,進入ISP

通過CH340G的rst和dtr引腳間接控制單片機的RST和BOOT0引腳,實現的程序一鍵式下載

 

 

 

CORE:core_cm3.c  core_cm3.h  startup_stm32f10x_hd.s

 

OBJ:過程文件和輸出文件hex

 

STM32F10x_FWLib:STM32固件庫包inc和src

 

USER:main.c  stm32f10x.h  stm32f10x_conf.h  

stm32f10x_it.c  stm32f10x_it.h  system_stm32f10x.c

system_stm32f10x.h

 

SYSTEM:原子編寫的usart.c  usart.h

delay.c  delay.h

system.c system.h

 

HARDWARE:自建外設分類文件夾

 

注意.h文件的路徑包含(到每級文件夾)

 

手冊中有FT標識部分的表示可以容忍5V電壓

 

GPIO口的使用:打開相應時鐘

               配置相應的模式

               配置相應的速度

 

浮空輸入模式:自由的輸入端,電平傳輸最終到達相應的

寄存器,讀取寄存器值

 

模擬輸入模式:自由輸入端,電壓被採樣到相應的外設部

               分,不到達輸入寄存器

 

 

輸出高低電平時,寫位設置/清除寄存器---->輸出數據寄

存器,控制後續電路的輸出電平極性

 

GPIOx_CRL:端口配置低8位寄存器,每4位控制一個IO

例:PA0-PA7  PA0(3-2:配置輸入/輸出速度模式)

      (1-0:配置輸入輸出模式細化)

 

GPIOx_IDR:低16位有效,對應相應IO口的輸入電平0/1          在輸出模式下也可以讀取其上電平,以驗證

 

GPIOx_ODR:低16位有效,對應相應IO口的輸出電平0/1

          在輸入模式下兼有上下拉的選擇功能

 

GPIO_BSRR:端口位設置/清除寄存器

          0-15位對應位1,輸出高,低無效

          16-31位對應位1,輸出低,低無效

          間接控制ODR寄存器設置IO口

 

每個IO口都可以作爲中斷輸入

 

 

使能IO口時鐘 RCC_APB2PeriphColckCmd();

初始化IO口模式,調用GPIO_Init();

 

操作IO口:GPIO_SetBits();  GPIO_ResetBits();

 

不同方法操作IO口,最終都是操作相應的底層寄存器ODR/IDR

 

位帶操作:單個IO口的位重新定義爲新的地址,可以直接操作地址

           如:PAout(1)=1;

 

 

位操作:GPIOA->CRL&=0XFFFFFF0F;

        GPIOA->CRL|=0XFFFFFF4F;  //0101

GPIOA->ODR|=1<<5;

TIMx->SR=(unint16_t)~TIM_FLAG;

 

Define宏定義:

#define sysclk_freq_72MHz  72000000

前爲所定義的宏名,後爲常數 表達式 格式串等

 

ifdef:條件編譯

#ifndef

#define

....

#end if

 

 

Typedef:類型別名

typedef unsigned char  uint8_t;

typedef unsigned int   uint32_t;

typedef unsigned short int   uint16_t;

 

STM32,一切底層配置,最終都是配置相關寄存器

 

sfr   P0=0X80;//特殊功能寄存器地址

P0=0X00;//特殊功能寄存器賦值

 

GPIOA->ODR=0X00000000;

 

寄存器地址位置映射:

重要的是在頂層中將特定位置的順序地址

強制類型轉換:劃分爲一個結構體類型,方便查詢使用

 

 

STM32時鐘框圖

 任何外設使用之前,必須使能相應的時鐘

 

 

時鐘結構體類型定義:與時鐘相關寄存器的集合

 

 

時鐘相關庫函數:

 

 

 

 

 

STM32的USB slave模式下D+需要接上拉電阻到VCC

 USB轉串口時只需要D+和D-引腳

Mini和Micro的座子的第4腳ID引腳默認下懸空,正常工作

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章