學號:14020520011 姓名:孟天玉
【嵌牛導讀】:基于STM32的單片機部分基礎學習
【嵌牛鼻子】:學習筆記、單片機、STM32
【嵌牛提問】:STM32有哪些基礎模塊?能實現什么功能?
【嵌牛正文】:
一.ADC與DAC
STM32F103的ADC模塊主要有三個特點
1. 最多可以測量23個通道,由21個外部通道源和兩個內部通道源組成
2. 單個ADC最大采樣頻率為1MHz,支持單次,連續、掃描、間斷交替方式
3. 12位逐次逼近型數模轉換器
STM32的ADC采樣時間可以設置。轉換周期Tcovn=采樣時間+12.5個周期。
ADC-open/read讀取通道上模擬電壓值,輸出12位整數(0~4095)/close
STM32F103的DAC模塊主要有8個特點:同步更新功能,噪聲波形生成,三角波形生成,WAV格式聲音文件播放,雙DAC通道同時或獨立進行轉換,每個通道都有DMA功能(Direct?Memory??Access,直接存儲器存?。?,外部觸發轉換,輸出電壓可調
DAC-open/write寫入12位整數轉換為模擬信號/close
二.PWM
PWM就是利用占空比可調的數字脈沖來控制和驅動模擬電路以及外部器件。可應用于電機控制、數字開關電源等方面。
例如舵機旋轉角度與PWM高占空比呈線性關系,因此可以改變PWM占空比來控制舵機。
PWM定時器配置過程如下:
1. 定時器初始化
2. 定時器輸出通道映射
3. PWM工作模式設置
4.PWM允許輸出到物理引腳
5. 開啟定時器計數模式
6. 更新PWM的頻率可占空比
三.中斷
STM32F103共有60個可屏蔽中斷可供用戶編程使用,可分為兩大類:外部中斷和內部中斷。其中,外部中斷有19個,前16個與I/O口相連;后三個分別與PVD電源電壓監測、RTC鬧鐘事件和USB喚醒事件相連。41個內部中斷中最長用的是定時器中斷,余下的一些是芯片內部一些特定模塊事件處理中斷。
中斷產生的條件一般有兩種:
1. 硬件中斷:監測條件不確定事件的發生并處理,減小CPU負擔。
2. 軟件中斷:條件滿足時有程序主動發出中斷消息,自動跳轉至中斷服務程序。
?外部中斷
STM32F103的外部中斷一共有19個:
1.EXTI線0~15:與GPIOx口的0~15號引腳相連。
2. EXTI線16:與PVD電源電壓檢測輸出相連,超出電壓閾值范圍產生中斷
3. EXTI線17:與RTC鬧鐘事件相連
4. EXTI線18:與USB喚醒事件相連
EXTI線0~15采取一對多的規則:EXTI0只能與GPIOx(x=A~G)端口中的0號引腳相連,即同一時刻智能與7個端口中一個相連。以此類推。
將一個GPIO口設置為外部中斷步驟如下:
1. I/O端口初始化
2. 設置I/O中斷觸發條件
3. 配置I/O的中斷分組,設置優先級
4. 使能/禁止中斷
5. 編寫中斷服務子程序
內部中斷
內部中斷是由STM32內部資源生成的中斷事件,包括:定時器中斷和特定功能模塊中斷。STM3F103中的定時器分為:基本定時器TIM6、TIM7;通用定時器TIM2~5;高級定時器TIM1,TIM8。
1. 基本定時器:
(1)只支持計數更新(溢出)中斷。
(2)觸發輸出端可以直接連接到DAC的觸發輸入端,驅動DAC更新數值。
2. 通用定時器中斷:
(1)支持計數更新(溢出)中斷
(2)支持脈沖測量(捕獲)
(3)支持脈沖生成(PWM)
(4)支持增量(正交)編碼器與霍爾傳感器的直接接入
3.高級定時器中斷:除了通用定時器的功能,還加入了支持剎車信號輸入與潛入死區時間互補的PWM信號生成等功能,使用較少。 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????