#include 'stm32f10x.h'
void GPIO_TimPWM(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);//
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; //TIM_CH2 GPIOA_Pin_7輸出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復(fù)用推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure); //不解釋
}
void TIM3_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能TIM3
//假如我要產(chǎn)生50Hz占空比為50%的PWM波,方便控制舵機(jī)
//設(shè)置方法:
//系統(tǒng)默認(rèn)時(shí)鐘為72MHz,預(yù)分頻71+1次,得到TIM3計(jì)數(shù)時(shí)鐘為1MHz
//計(jì)數(shù)長度為19999+1=20000,可得PWM頻率為1M/20000=50Hz
//具體設(shè)置可參考上面的設(shè)置方法,簡單明了!
TIM_TimeBaseStructure.TIM_Prescaler = 72-1;//網(wǎng)上多數(shù)設(shè)置有誤
TIM_TimeBaseStructure.TIM_Period = 20000-1;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
//設(shè)置時(shí)鐘分割: TIM_CKD_DIV1 = 0,PWM波不延時(shí)(延時(shí)破壞占空比?待考證)
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上計(jì)數(shù)模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
TIM_ARRPreloadConfig(TIM3, DISABLE); //禁止ARR預(yù)裝載緩沖器,也可以不用設(shè)置
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //選擇定時(shí)器模式:TIM脈沖寬度調(diào)制模式2
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
//占空比設(shè)置方法:
//占空比=(TIM_Pulse+1)/(TIM_Pulse+1)-(TIM_Period+1)=10000/20000=0.5=50%
TIM_OCInitStructure.TIM_Pulse = 10000-1;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高
TIM_OC2Init(TIM3, &TIM_OCInitStructure); //根據(jù)TIM_OCInitStruct中指定的參數(shù)初始化外設(shè)TIMx
TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能TIMx在CCR2上的預(yù)裝載寄存器
//上面兩句中的OC2確定了是channle幾,要是OC3則是channel 3
TIM_CtrlPWMOutputs(TIM3,ENABLE); //設(shè)置TIM2的PWM輸出為使能
TIM_ARRPreloadConfig(TIM3, ENABLE); //使能TIMx在ARR上的預(yù)裝載寄存器
TIM_Cmd(TIM3, ENABLE); //使能TIMx外設(shè)
}
int main(void)
{
GPIO_TimPWM();
TIM3_Configuration();
while(1)
{
} ;
}
利用Keil邏輯分析儀分分析PWM波形圖:經(jīng)過測(cè)試可以看出輸出波形精度可靠!
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- L6985F 38V、500mA 同步降壓開關(guān)穩(wěn)壓器的典型應(yīng)用,具有 30 uA 靜態(tài)電流
- AM6TW-2405SZ 5V 6 瓦單路輸出 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- LTC4054L-4.2 的典型應(yīng)用 - ThinSOT 中的 150mA 獨(dú)立線性鋰離子電池充電器
- 采用MIC4575可調(diào)降壓穩(wěn)壓器的典型應(yīng)用電路
- 使用 TC7662B 電荷泵調(diào)節(jié)輸出電壓的典型應(yīng)用電路
- 使用 Asahi Kasei Microdevices Corporation 的 AK4220VQP 的參考設(shè)計(jì)
- CMC1003-2M??-55-8-KU、EP4CE55 USB Blaster 套件,允許在緊湊型模塊中實(shí)現(xiàn)通用邏輯功能、Altera Nios II 處理器操作
- LTC1046CS8 電池分路器的典型應(yīng)用電路
- ADP7118RD-EVALZ、LFCSP 評(píng)估板,用于評(píng)估 ADP7118 20V、200mA 低噪聲、CMOS LDO
- L7809C高輸入電壓電路典型應(yīng)用(配置1)
- ROHM推出“PFC+反激控制參考設(shè)計(jì)”,助力實(shí)現(xiàn)更小巧的電源設(shè)計(jì)!
- 實(shí)現(xiàn)自我溝通和與世界溝通的新方式
- 上汽集團(tuán)將推10萬級(jí)半固態(tài)電池車型
- Bourns 推出其最小封裝尺寸 AEC-Q200 認(rèn)證車規(guī)級(jí)厚膜電阻
- 特斯拉大量使用激光雷達(dá)!
- 為何只有特斯拉采用PC芯片,而其他車企采用手機(jī)級(jí)車規(guī)芯片?
- 孚能科技:全固態(tài)電池進(jìn)入中試生產(chǎn)階段,計(jì)劃年底建成 0.2GWh 中試線
- 三星顯示獲梅賽德斯-邁巴赫S級(jí)48英寸OLED屏幕訂單
- Clearmotion全主動(dòng)懸掛系統(tǒng)將搭載保時(shí)捷,蔚來ET9已應(yīng)用
- R-SARC上車國產(chǎn)車型 京西智行讓智能底盤科技平權(quán)
- 科通芯城聯(lián)手全志力推芯片國有化 受惠1.6萬億機(jī)遇
- 廈門火炬高新區(qū)去年工業(yè)招商三項(xiàng)指標(biāo)居廈門市首位
- 圣邦股份:產(chǎn)品綜合性能品質(zhì)達(dá)到國際同類產(chǎn)品先進(jìn)水平
- 新業(yè)務(wù)發(fā)力 國科微物聯(lián)網(wǎng)芯片營收暴增13倍
- 半導(dǎo)體設(shè)備國產(chǎn)替代站上風(fēng)口 概念股有哪些?
- 第一代芯片創(chuàng)業(yè)者武平:中國仍有追趕的機(jī)會(huì)
- 抓創(chuàng)新 聚人才 優(yōu)環(huán)境 推動(dòng)集成電路產(chǎn)業(yè)健康發(fā)展
- 紫光國芯:積極尋求芯片設(shè)計(jì)領(lǐng)域的拓展機(jī)會(huì)
- 無線充電市場(chǎng)遭遇戰(zhàn):國際大廠vs.中國本土豪強(qiáng)
- 阿里收購的中天微 創(chuàng)始人涉“漢芯”黑歷史沒人提?