本例展示了如何利用外設(shè)TIM2來(lái)產(chǎn)生四路頻率不同的信號(hào)。 TIM2時(shí)鐘設(shè)置為36MHz,預(yù)分頻設(shè)置為2,使用輸出比較-翻轉(zhuǎn)模式(Output Compare Toggle Mode)。 TIM2計(jì)數(shù)器時(shí)鐘可表達(dá)為:TIM2 counter clock = TIMxCLK / (Prescaler +1) = 12 MHz 設(shè)置TIM2_CCR1寄存器值為32768,則CC1更新頻率為TIM2計(jì)數(shù)器時(shí)鐘頻率除以CCR1寄存器值,為366.2 Hz。因此,TIM2通道1可產(chǎn)生一個(gè)頻率為183.1 Hz的周期信號(hào)。 同理,根據(jù)寄存器TIM2_CCR2 、TIM2_CCR3和 TIM2_CCR4的值,TIM2通道2可產(chǎn)生一個(gè)頻率為366.3 Hz的周期信號(hào);TIM2通道3可產(chǎn)生一個(gè)頻率為732.4 Hz的周期信號(hào);TIM2通道4可產(chǎn)生一個(gè)頻率為1464.8 Hz的周期信號(hào)。 可以通過(guò)示波器觀察各路輸出
上傳時(shí)間: 2014-01-22
上傳用戶:plsee
本例展示了如何使用嵌套中斷向量控制器(Nested Vectored Interrupt Controller)來(lái)設(shè)置IRQ通道。 把3個(gè)計(jì)時(shí)器(TIM2,3,4)設(shè)置為在每一個(gè)計(jì)數(shù)器更新事項(xiàng)(counter update event)產(chǎn)生中斷。這三個(gè)計(jì)時(shí)器都與各自對(duì)應(yīng)的更新IRQ通道聯(lián)系起來(lái),并設(shè)置他們的中斷優(yōu)先級(jí),TIM2為0,TIM4為2。 在他們各自的中斷中:TIM2每1秒翻轉(zhuǎn)一次PC.06的狀態(tài);TIM3每2秒翻轉(zhuǎn)一次PC.07的狀態(tài);TIM4每3秒翻轉(zhuǎn)一次PC.08的狀態(tài)。 由于在STM3210B-LK1板上, 4個(gè)LED連接在PC.04 – PC.07,而不是STM3210B-EVAL上的PC.06 – PC.09,因此,程序要做相應(yīng)的改動(dòng)。
標(biāo)簽: Controller Interrupt Vectored Nested
上傳時(shí)間: 2013-12-18
上傳用戶:Zxcvbnm
用TIM3定時(shí)器在PA6、PA7、PB0、PB1輸出四種頻率相同占空比分別是50 、37.5 、25 、12.5 的信號(hào)。 用TIM2的PWM_Input功能,從PA1口捕獲PWM信號(hào)的頻率及占空比,并用USART1輸出測(cè)量信息。
標(biāo)簽: PWM_Input TIM3 37.5 12.5
上傳時(shí)間: 2017-05-21
上傳用戶:lps11188
本例展示了如何設(shè)置TIM工作在輸出比較-非主動(dòng)模式(Output Compare Inactive mode),并產(chǎn)生相應(yīng)的中斷。 TIM2時(shí)鐘設(shè)置為36MHz,預(yù)分頻設(shè)置為35999,TIM2計(jì)數(shù)器時(shí)鐘可表達(dá)為: TIM2 counter clock = TIMxCLK / (Prescaler +1) = 1 KHz 設(shè)置TIM2_CCR1寄存器值為1000, CCR1寄存器值1000除以TIM2計(jì)數(shù)器時(shí)鐘頻率1KHz,為1000毫秒。因此,經(jīng)過(guò)1000毫秒的時(shí)延,置PC.06輸出為低電平。 同理,根據(jù)寄存器TIM2_CCR2 、TIM2_CCR3和 TIM2_CCR4的值,經(jīng)過(guò)500毫秒的時(shí)延,置PC.07輸出為低電平;經(jīng)過(guò)250毫秒的時(shí)延,置PC.08輸出為低電平;經(jīng)過(guò)125毫秒的時(shí)延,置PC.09輸出為低電平。 輸出比較寄存器的值決定時(shí)延的大小,當(dāng)計(jì)數(shù)器的值小于這個(gè)值的時(shí)候,點(diǎn)亮與PC.06-PC.09相連的LED;當(dāng)計(jì)數(shù)器的值達(dá)到這個(gè)值得時(shí)候,產(chǎn)生中斷,在TIM2的4個(gè)通道相應(yīng)的中斷里,把它們一一關(guān)閉。
標(biāo)簽: Inactive Compare Output mode
上傳時(shí)間: 2013-12-20
上傳用戶:ghostparker
STM32F407VGT6精確脈沖控制步進(jìn)電機(jī)源碼,采用STM32F407VGT6芯片,拋棄單脈沖輸出方式,直接使用普通PWM輸出方式精確輸出脈沖個(gè)數(shù),每個(gè)脈沖都可以改變頻率和占空比。PWM+中斷,簡(jiǎn)單粗暴。#include "sys.h"#include "delay.h"#include "pwm1.h"#include "pwm2.h"#include "pwm3.h"//注釋見(jiàn)pwm1.c文件extern int count2;int main(void){ delay_init(168); //初始化延時(shí)函數(shù) TIM2_Init(1,167); TIM3_Init(1,167); TIM5_Init(1,167); // delay_ms(1000); TIM2_OUTPUT(); TIM3_OUTPUT(); TIM5_OUTPUT(); while(1) { //TIM2每次輸出完10個(gè)脈沖后間隔100ms再次輸出 if(count2 >= 10){ delay_ms(100); TIM2_OUTPUT(); } }
標(biāo)簽: stm32f407vgt6 脈沖控制 步進(jìn)電機(jī)
上傳時(shí)間: 2021-10-26
上傳用戶:xsr1983
基于LabVIEW的ARM Cortex-M3嵌入式開(kāi)發(fā)寶典電子書(shū)內(nèi)容簡(jiǎn)介第 1 篇 軟件篇1.1 LabVIEW Embedded Module for ARM Microcontrollers 模塊介紹1.2 Keil RealView MDK 軟件介紹1.3 Keil RTX 實(shí)時(shí)操作系統(tǒng)介紹1.4 LabVIEW ARM Module 軟件架構(gòu)1.5 LabVIEW ARM Module、RealView MDK、實(shí)驗(yàn)平臺(tái)驅(qū)動(dòng)軟件安裝1.6 STM32 實(shí)驗(yàn)范例查找與 USB JLink-OB 驅(qū)動(dòng)加載第 2 篇 硬件篇2.1 ARM Cortex-M3 內(nèi)核簡(jiǎn)介2.2 實(shí)驗(yàn)平臺(tái)介紹2.2.1 STM32 Starter Board(學(xué)習(xí)板)介紹2.2.2 STM32 Core Board(核心板)介紹2.2.3 STM32 DAQ Board(數(shù)采板)介紹2.3 實(shí)驗(yàn)平臺(tái)資源說(shuō)明2.3.1 STM32 Starter Board 資源簡(jiǎn)介2.3.2 STM32 Core Board 資源簡(jiǎn)介2.3.3 STM32 DAQ Board 資源簡(jiǎn)介2.4 My_ARM 實(shí)驗(yàn)平臺(tái)總結(jié)與展望第 3 篇 基礎(chǔ)模塊篇(附原理圖)3.1.1 GPIO 介紹3.1.2 GPIO 工作原理3.1.3 GPIO 驅(qū)動(dòng)實(shí)現(xiàn)3.1.4 GPIO 兩種驅(qū)動(dòng)方式比較3.1.5 GPIO 總結(jié)3.2 ADC/DAC3.2.1 ADC 介紹3.2.2 ADC 驅(qū)動(dòng)實(shí)現(xiàn)3.2.3 DAC 介紹3.2.4 DAC 驅(qū)動(dòng)實(shí)現(xiàn)3.3 中斷(60 線)3.3.1 外部中斷(19 線)3.3.1.1 外部 I/O 中斷(GPIO:16 線)3.3.1.2 外部特定中斷(PVD、RTC、USB:3 線)3.3.2 外部中斷的驅(qū)動(dòng)實(shí)現(xiàn)3.3.3 定時(shí)器中斷(TIM2~TIM5、TIM6、TIM7、TIM1、TIM8)3.3.3.1 基本定時(shí)器中斷3.3.3.2 通用定時(shí)器中斷3.3.3.3 高級(jí)定時(shí)器中斷3.3.4 定時(shí)器中斷驅(qū)動(dòng)實(shí)現(xiàn)3.3.4.1 更新中斷驅(qū)動(dòng)實(shí)現(xiàn)3.3.4.2 輸入測(cè)量驅(qū)動(dòng)實(shí)現(xiàn)3.3.4.3 編碼器驅(qū)動(dòng)實(shí)現(xiàn)3.4 PWM 生成3.4.1 PWM 原理、應(yīng)用3.4.2 PWM 驅(qū)動(dòng)實(shí)現(xiàn)3.4.3 PWM 設(shè)置技巧3.5 看門(mén)狗3.5.1 獨(dú)立看門(mén)狗(IWDG)介紹3.5.2 獨(dú)立看門(mén)狗驅(qū)動(dòng)實(shí)現(xiàn)3.5.3 窗口看門(mén)狗(WWDG)介紹3.5.4 窗口看門(mén)狗驅(qū)動(dòng)實(shí)現(xiàn)3.6 TFTLCD 顯示、觸摸屏操作、OLED 顯示3.6.1 TFTLCD 工作原理3.6.2 TFTLCD 顯示驅(qū)動(dòng)實(shí)現(xiàn)3.6.3 觸摸屏工作原理3.6.4 觸摸屏驅(qū)動(dòng)實(shí)現(xiàn)3.6.5 OLED 工作原理3.6.6 OLED 驅(qū)動(dòng)實(shí)現(xiàn).............
標(biāo)簽: labview arm cortex-m3 嵌入式
上傳時(shí)間: 2022-07-17
上傳用戶:
正在做0-30V、0-15A的數(shù)控電源,程序搞了很久終于差不多了,得瑟得瑟自己腐蝕的板子:顯示器件最初用128*64的是OLED小屏:屏幕太小感覺(jué)與機(jī)殼不配,換1.8寸的TFT彩屏:主控選用了STM8L152K4,SPI口彩屏。屏顯第一行設(shè)置電壓電流。第二行用大字體顯示輸出電壓、電流。中部為輸出電壓電流曲線。屏幕成128*160分辨率后,最初想在多出的“空間”顯示散熱器、變壓器溫度、配色菜單或者為電池充電預(yù)置參數(shù)什么的,感覺(jué)意義不大,最終放了兩條輸出曲線。最下面是功率、電阻AH、WH等參數(shù)。用了3個(gè)定時(shí)器,tim1設(shè)為編碼器模式,驅(qū)動(dòng)編碼器。TIM2產(chǎn)生PWM信號(hào),啟用了一個(gè)ADC通道采集熱敏電阻信號(hào),根據(jù)溫度改變PWM占空比,實(shí)現(xiàn)散熱扇溫控調(diào)速。tim3精確定時(shí),累計(jì)時(shí)間用于AH、WH參數(shù)計(jì)算。DAC為12位的雙通道芯片MCP4822。芯片內(nèi)置的12位ADC采集輸出電壓、電流和熱敏電阻信號(hào),前兩者用于顯示和計(jì)算,后者用于風(fēng)扇溫控。做到后來(lái)感覺(jué)不該在此處偷懶,用獨(dú)立的ADC芯片就好了,顯示和偏移就都能到1mV、1mA了,現(xiàn)在這板子,沒(méi)轍了。啟用了2個(gè)引腳的外部中斷,以外部中斷方式觸發(fā)更新設(shè)置值和編碼器按鍵值,編碼器按鍵值決定設(shè)置位。反白(紅)位為當(dāng)前設(shè)置位,旋轉(zhuǎn)編碼器可改變?cè)O(shè)置值,短按編碼器開(kāi)關(guān)改變?cè)O(shè)置位,長(zhǎng)按為輸出\預(yù)制切換。還有3條口線用于控制繼電器,切換輸入電壓。
上傳時(shí)間: 2022-07-23
上傳用戶:bluedrops
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1