這個pwm幾天前就搞出來了,但是覺得不是很難,就沒有寫
今天jlink固件壞了,修了半天沒有修好,現在就先扔著吧,先借大黃的用用,下面閑著木事,就把pwm寫下吧
好吧,開始今天的pwm
還是老話,先附上一段代碼:(由于stm的pwm有多個,每個又有多個通道,我們今天選TIM2_CH1來產生)
/*
* TIM2_CH1
*/
int pwm_init(u16 arr,u16 psc)
{
RCC->APB1ENR = 1<<0; //enable timer2
RCC->APB2ENR = 1<<2; //enable GPIOA
GPIOA->CRL &= ~(0xF<<0); //Clear bit0 Control Register
GPIOA->CRL |= 0xb<<0; //Set Bit0 Control Register
// GPIOA->ODR |= 1<<0; //Enable Bit0
TIM2->ARR = arr;
TIM2->PSC = psc;
TIM2->CCMR1 |= 7<<4;
TIM2->CCMR1 |= 1<<3;
TIM2->CCER |= 1<<0;
TIM2->CR1 |= 1<<0;
return 0;
}
前5句,現在大家都應該懂了吧,TIMER時鐘配置,管腳時鐘配置,管腳模式配置,這里肯定要配置稱輸出模式
由于咱們選用的是TIMER2,那我們就用TIM2
先設置自動裝載寄存器ARR和預分頻寄存器PSC,這兩個寄存器一起來設置分頻的頻率
舉個例子:
PCLK = 72M = 72000KHz,設置ARR = 900,PSC = 1;
則輸出的PWM周期為:72 000 /(900*(1+1) ) = 40KHz
至于CCMR比較/捕獲模式寄存器
他有 兩個功能,當選擇比較寄存器的時候,看上面一欄,捕獲模式時看下面一欄
輸出比較模式,他有兩種輸出模式,OC1和OC2,其實總共有4組,他有4路輸出,CCMR1,CCMR2分別控制兩組;
我們這里用的是CH1通道,所以我們需要配置0~7bit的數據。
首先我們來了解下pwm輸出模式:
根據這段描述,這里的無效電平,會導致OCxREF為低電平,從而管腳輸出電壓即為低電平。
所以,011:在把低電平換位高電平,高電平換成低電平
100:輸出全部為低電平
101:輸出全為高電平
110:先輸出高電平,再輸出低電平,之類的CCR1比較/捕獲寄存器是用來區分什么時候發生電平跳變的,CCRx寄存器也有4組,我們用的是CH1通道,估大家都懂,我們應該用CCR1
111:跟上一組相反
int main()
{
sys_init(9);
pwm_init(900,3); //Set Period
RCC->APB2ENR |= 1<<6;
GPIOE->CRL &= ~(0xf<<0);
GPIOE->CRL |= 0xb<<0;
GPIOE->ODR |= 1<<0;
TIM2->CCR1 = 0;
sw5_config();
while(1)
{
if(!(GPIOE->IDR & GPIO_Pin_14))
{
delay_ms(20);
if(!(GPIOE->IDR & GPIO_Pin_14))
{
TIM2->CCR1 += 10;
}
while(!(GPIOE->IDR & GPIO_Pin_14));
}
}
}
這里ARR = 900,PSC = 3
所以: F = 72000KHz/(900*(3+1)) = 20KHz
基本上跟示波器上的一樣
關于pwm的配置是相對比較簡單的,大家不要被他寄存器的數量嚇到了,那么多寄存器,是因為他有多路,所以,他會有那么多,學會了一路,其他都是非常easy的!
上一篇:STM32-嵌入式學習筆記1-使用HSE和HSI配置時鐘
下一篇:stm32 靈活靜態存儲控制器(FSMC)(NORFLASH\PSRAM)
推薦閱讀
史海拾趣
隨著技術的不斷進步,Daniel Woodhead公司開始將目光投向更廣闊的市場。公司推出了一系列基于自家微處理器的電子產品,如個人計算機、服務器和工作站等。這些產品憑借其出色的性能和穩定性,在市場上獲得了良好的口碑。同時,公司還加大了品牌宣傳力度,通過贊助科技展會和舉辦技術研討會等活動,進一步提升了品牌影響力。
Daniel Woodhead公司在電子行業的起點可以追溯到創始人Daniel Woodhead對先進半導體技術的熱情。在當時,半導體技術正逐漸嶄露頭角,Daniel看到了其中的巨大潛力。他帶領團隊日夜研發,成功開發出了一款性能卓越的微處理器,這款處理器憑借其高效能和低功耗在市場上脫穎而出,為公司贏得了第一桶金。
辰頤電子公司成立于XXXX年,由一群熱衷于電子技術的年輕人共同創立。他們看到了電子行業巨大的市場潛力和技術革新的重要性,決定投身于這一領域。初創時期,公司面臨著資金短缺、技術瓶頸和市場競爭等多重挑戰。然而,他們憑借對技術的執著追求和對市場的敏銳洞察,成功研發出了一款具有創新性的電子產品,并迅速在市場上打開了局面。
AMERICASEMI公司成立于XXXX年,起初是一家專注于半導體技術研發的小型創業公司。在創立初期,公司面臨著資金短缺、市場競爭激烈等諸多挑戰。然而,憑借創始團隊對半導體技術的深刻理解和市場需求的敏銳洞察,AMERICASEMI成功開發出一系列具有競爭力的半導體產品,并逐漸在市場中占據了一席之地。
隨著市場競爭的加劇,DFI意識到單一產品的競爭力有限。因此,公司開始尋求垂直整合的機會,與羅升等公司合作,共同開發智能制造的全面性解決方案。這一舉措不僅使DFI能夠提供更完整的產品線,還增強了其在行業中的競爭力。通過與合作伙伴的緊密合作,DFI成功推出了一系列具有競爭力的智能制造解決方案,贏得了市場的廣泛認可。
0805封裝尺寸/0402封裝尺寸/0603封裝尺寸/1206封裝尺寸 封裝尺寸與功率關系: 0201 1/20W 0402 1/16W 0603 1/10W 0805 1/8W 1206 1/4W 封裝尺寸與封裝的對應關系 0402=1.0mmx0.5mm 0603=1.6mmx0.8mm 0805=2.0mmx1.2mm 1206=3.2mmx1.6mm 1210= ...… 查看全部問答∨ |
|
現在很多的企業,網站都在應用Linux操作系統,Linux的優點使人們舍棄 了微軟。今天就講講Linux集群技術,讓你更一步了解Linux,知道Linux集群技術 強大功能。接下來具體的由卓躍教育為您介紹。 Linux競爭力很強的原因之一,是它 ...… 查看全部問答∨ |
在已有的“計數 頻率LCD顯示”(FreqMesa)的基礎上,把計數的對象改為“正交脈沖信號” (圖中,計數器仍保留著,只用于調試對比用) 定時中斷,還是很好用的: 新增加A,B信號也安排了(圖中的Pin_1,Pin_2): 正交信號,也是早就預備好了(LPC80 ...… 查看全部問答∨ |
以下是ti提供的TIMERA例程; // MSP-FET430P140 Demo - Timer_A, Toggle P3.4, CCR0 Cont. Mode ISR, DCO SMCLK // // Description: Toggle P3.4 using software and TA_0 ISR. Toggles every // 50000 SMC ...… 查看全部問答∨ |
本帖最后由 ddllxxrr 于 2016-1-7 16:41 編輯 1、藍魔MP3 屏幕2.4英寸 320×240像素,可以直接播放FLV視頻 電池待機時間不是很長, 價格20 2、三星電信手機 兩塊電池,無充電器, 價格20 3、3.5寸黑白+觸摸+底板+程序 45 4 ...… 查看全部問答∨ |