STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的ARM Cortex-M3內(nèi)核(ST‘s product portfolio contains a comprehensive range of microcontrollers, from robust, low-cost 8-bit MCUs up to 32-bit ARM-based Cortex?-M0 and M0+, Cortex?-M3, Cortex?-M4 Flash microcontrollers with a great choice of peripherals. ST has also extended this range to include an ultra-low-power MCU platform)[1] 。按內(nèi)核架構(gòu)分為不同產(chǎn)品:
其中STM32F系列有:STM32F103“增強型”系列STM32F101“基本型”系列STM32F105、STM32F107“互聯(lián)型”系列
增強型系列時鐘頻率達到72MHz,是同類產(chǎn)品中性能最高的產(chǎn)品;基本型時鐘頻率為36MHz,以16位產(chǎn)品的價格得到比16位產(chǎn)品大幅提升的性能,是32位產(chǎn)品用戶的最佳選擇。兩個系列都內(nèi)置32K到128K的閃存,不同的是SRAM的最大容量和外設(shè)接口的組合。時鐘頻率72MHz時,從閃存執(zhí)行代碼,STM32功耗36mA,相當(dāng)于0.5mA/MHz。
gpio
General Purpose Input Output (通用輸入/輸出)簡稱為GPIO,或總線擴展器,人們利用工業(yè)標(biāo)準I2C、SMBus或SPI接口簡化了I/O口的擴展。當(dāng)微控制器或芯片組沒有足夠的I/O端口,或當(dāng)系統(tǒng)需要采用遠端串行通信或控制時,GPIO產(chǎn)品能夠提供額外的控制和監(jiān)視功能。
分類:硬件/嵌入開發(fā)驅(qū)動開發(fā)/核心開發(fā)
每個GPIO端口可通過軟件分別配置成輸入或輸出。Maxim的GPIO產(chǎn)品線包括8端口至28端口的GPIO,提供推挽式輸出或漏極開路輸出。提供微型3mm x 3mm QFN封裝。
PWM
PWM控制技術(shù)以其控制簡單,靈活和動態(tài)響應(yīng)好的優(yōu)點而成為電力電子技術(shù)最廣泛應(yīng)用的控制方式,也是人們研究的熱點。由于當(dāng)今科學(xué)技術(shù)的發(fā)展已經(jīng)沒有了學(xué)科之間的界限,結(jié)合現(xiàn)代控制理論思想或?qū)崿F(xiàn)無諧振波開關(guān)技術(shù)將會成為PWM控制技術(shù)發(fā)展的主要方向之一。其根據(jù)相應(yīng)載荷的變化來調(diào)制晶體管基極或MOS管柵極的偏置,來實現(xiàn)晶體管或MOS管導(dǎo)通時間的改變,從而實現(xiàn)開關(guān)穩(wěn)壓電源輸出的改變。這種方式能使電源的輸出電壓在工作條件變化時保持恒定,是利用微處理器的數(shù)字信號對模擬電路進行控制的一種非常有效的技術(shù)。
stm32單片機中使用GPIO口模擬PWM輸出解析
使用了STM32F10364引腳的MCU,在硬件設(shè)計中,因為外設(shè)較多,導(dǎo)致每個通用定時器至少有兩個PWM輸出引腳被占用,現(xiàn)在要控制RGB燈,只能用一個普通IO引腳模擬PWM輸出。
相關(guān)的硬件電路設(shè)置如下:
GPIOA1------------------------------RGBBLUE燈
GPIOB1------------------------------RGBGREEN燈
GPIOD2------------------------------RGBRED燈
RGB燈采用了共陽極電路,所以在PWM的輸出急性設(shè)置時,將極性設(shè)置為高電平,定時器的初始化如下圖所示:
void initLedTimer( void ){
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_DeInit( TIM2 );
TIM_TimeBaseStructInit(&TIM_TimeBaseStructure );
TIM_TimeBaseStructure.TIM_Period =TIMER_PERIOD;
TIM_TimeBaseStructure.TIM_Prescaler =TIMER_PRESCALER;
TIM_TimeBaseStructure.TIM_ClockDivision= TIM_CKD_DIV1; // 不分頻
TIM_TimeBaseStructure.TIM_CounterMode =TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);
TIM_OCStructInit(&TIM_OCInitStructure );
TIM_OCInitStructure.TIM_OCMode =TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_OutputState =TIM_OutputState_Disable;
TIM_OCInitStructure.TIM_Pulse =DEFAULT_DUTY_CYCLE;
TIM_OCInitStructure.TIM_OCPolarity =TIM_OCPolarity_High;
//
TIM_OC1Init(TIM2,&TIM_OCInitStructure);
//
TIM_OC1PreloadConfig(TIM2,TIM_OCPreload_Enable);
//
TIM_OC2Init(TIM2,&TIM_OCInitStructure);
//
TIM_OC2PreloadConfig(TIM2,TIM_OCPreload_Enable);
//
TIM_OC3Init(TIM3,&TIM_OCInitStructure);
//
TIM_OC3PreloadConfig(TIM3,TIM_OCPreload_Enable);
//
TIM_OC4Init(TIM3,&TIM_OCInitStructure);
//
TIM_OC4PreloadConfig(TIM3,TIM_OCPreload_Enable);
//
TIM_OCStructInit(&TIM_OCInitStructure );
TIM_OCInitStructure.TIM_OCMode =TIM_OCMode_Timing;
TIM_OCInitStructure.TIM_Pulse =DEFAULT_DUTY_CYCLE;
//
TIM_OC2Init(TIM3,&TIM_OCInitStructure);
//
TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);
// ARR重裝載使能
TIM_ARRPreloadConfig(TIM2,ENABLE);
TIM_ARRPreloadConfig(TIM3,ENABLE);
//
TIM_ClearITPendingBit( TIM2,TIM_IT_Update );
TIM_ClearITPendingBit( TIM3,TIM_IT_Update | TIM_IT_CC2 );
//定時器2和3中斷使能
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
TIM_ITConfig(TIM3,TIM_IT_Update |TIM_IT_CC2, ENABLE);
}
輸出極性為高電平的意思就是說,假如說占空比為20%,那么他表示,低電平占整個周期20%的時間,反之如果設(shè)置極性為低電平,那么表示高電平占用整個周期的20%。
如何用GPIOD2模擬PWM波形呢? 關(guān)鍵的地方就是同時必須使用定時器中斷
上一篇:STM32串口的發(fā)送和接收
下一篇:請問一下STM32管腳重映射支持任意組合嗎?
推薦閱讀最新更新時間:2025-07-10 13:57




設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- TS39203 2A 超低壓差穩(wěn)壓器典型應(yīng)用
- 適用于工業(yè)應(yīng)用的 C8051F911 MCU 的 C8051F912-DK、8051 開發(fā)系統(tǒng)
- 具有欠壓鎖定功能的 LT1317BCS8 2 節(jié)電池至 5V DC/DC 轉(zhuǎn)換器的典型應(yīng)用電路
- KIT33982CEVBE: 評估套件 - 33982,單通道2mOhm高邊開關(guān)
- 使用具有 B 類 EMI 濾波(雙輸出)的 RP10-123.3SA DC/DC 轉(zhuǎn)換器的典型應(yīng)用
- 具有雙輸入的 LTC3126HFE 12V、2MHz 降壓轉(zhuǎn)換器的典型應(yīng)用電路
- MOSFET 4直插型封裝DFN8x8 (TK25V60X)應(yīng)用電路
- 用PIC單片機設(shè)計電子密碼鎖
- 具有基于STAP16DPPS05和STM8A的汽車應(yīng)用診斷功能的高亮度LED陣列驅(qū)動器
- 具有固定輸出電壓的典型應(yīng)用,ADP7118 為 5V 20V、200mA 低噪聲 CMOS LDO
- 動力電池“三國殺”:中企提前鎖定勝局,日韓廠商集體失守
- 研究人員開發(fā)出人工智能雷達技術(shù) 可用于高分辨率3D城市制圖
- 上半年動力電池TOP15:寧德時代和比亞迪裝車近200GWh 兩家公司新上榜
- 半年砸下數(shù)千億元!“并購”浪潮下,汽車芯片大戰(zhàn)再起風(fēng)云
- 奇瑞人形機器人9月開售并將面向個人用戶,機器人時代該來了嗎?
- 華為李文廣:華為智能駕駛規(guī)劃曝光,加速追趕特斯拉
- 功能迭代和功能安全的矛盾及車端應(yīng)用層-下
- 功能迭代和功能安全的矛盾及車端應(yīng)用層-中
- 功能迭代和功能安全的矛盾及車端應(yīng)用層-上
- 車云一體其他層面的架構(gòu)設(shè)計借鑒-下