<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 智林STM32程序源代碼的分析和整理04

智林STM32程序源代碼的分析和整理04

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò ) 收藏
一、定時(shí)器的配置

1、概述

本文引用地址:http://dyxdggzs.com/article/201611/322961.htm

STM32的定時(shí)器功能比較多、配置也較復雜,我現在了解不多,邊用邊學(xué)吧。智林開(kāi)發(fā)板上有兩個(gè)用定時(shí)器的地方,一個(gè)是液晶的背光電源,要求輸出一定的PWM波形,用于整流提供電源;二是用于控制喇叭,也是時(shí)鐘脈沖輸出。

定時(shí)器首先的選擇是計數、還是定時(shí),我這里用的都是定時(shí),輸出模式可以是輸入時(shí)定時(shí)器的捕獲,可以是比較匹配時(shí)設定輸出(經(jīng)常用到這一種)。

2、源程序

void TIMx_Config(void) {

TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;//時(shí)基單元配置數據結構

TIM_OCInitTypeDefTIM_OCInitStructure;//輸出模式設置數據結構

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;//PA2,復用輸出模式

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//即用于定時(shí)2通道3

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

TIM_TimeBaseStructure.TIM_Period = CCR3_Val;//40寫(xiě)入自動(dòng)裝載寄存器,150KHz輸出。

TIM_TimeBaseStructure.TIM_Prescaler = 2;//分頻系數3

TIM_TimeBaseStructure.TIM_ClockDivision = 0;//與什么采樣相關(guān),這里用不到

//向上計數的特點(diǎn)是:從0到加載值,產(chǎn)生溢出;然后重新從0計數。

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle;//定時(shí)器計數與比較通道匹配時(shí)翻轉

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//開(kāi)啟輸出通道

TIM_OCInitStructure.TIM_Pulse = CCR3_Val;//比較通道的計數值

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;//低電平有效

TIM_OC3Init(TIM2, &TIM_OCInitStructure);

TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable);//自動(dòng)重裝載,預裝載

TIM_Cmd(TIM2, ENABLE);

//TIM_ITConfig(TIM2, TIM_IT_CC3, ENABLE);

}

這里只列出了液晶使用的定時(shí)器2通道3的輸出,輸出150kHz的頻率。沒(méi)用到中斷。這個(gè)頻率是怎么得到的呢?首先是TIM2使用APB1的36M,經(jīng)過(guò)預分頻,分頻系數為(Prescaler+1)=3,3分頻后為12MHz。計數周期為40,計數到40與輸出比較寄存器產(chǎn)生匹配,觸發(fā)輸出翻轉,然后計數器重新開(kāi)始計數。故輸出通道的頻率為12MHz除以80,得到150kHz。

二、串口的配置

按鍵輸入命令不怎么方便,很快我就要編寫(xiě)串口通信程序,用串口輸入命令,控制開(kāi)發(fā)板。串口配置用庫函數很方便。

void UART_Config(void){//進(jìn)行串口的初始化配置

USART_InitTypeDef USART_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;

USART1->BRR =0x0271;

USART_Cmd(USART1, ENABLE);

}



關(guān)鍵詞: 智林STM32程序源代

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>