中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

外貿(mào)模版網(wǎng)站奉化seo頁面優(yōu)化外包

外貿(mào)模版網(wǎng)站,奉化seo頁面優(yōu)化外包,昆明網(wǎng)站做的好的公司簡介,衛(wèi)龍的網(wǎng)站是誰做的接線圖: 這里將正極接到PA0引腳上,負(fù)極接到GND,這樣就高電平點亮LED,低電平熄滅。 占空比越大,LED越亮,占空比越小,LED越暗 PWM初始化配置 輸出比較函數(shù)介紹: 用這四個函數(shù)配置輸…

接線圖:

這里將正極接到PA0引腳上,負(fù)極接到GND,這樣就高電平點亮LED,低電平熄滅。

占空比越大,LED越亮,占空比越小,LED越暗

PWM初始化配置

輸出比較函數(shù)介紹:

用這四個函數(shù)配置輸出比較模式,四個函數(shù)對應(yīng)四個輸出比較單元,這個函數(shù)使用結(jié)構(gòu)體初始化輸出比較單元的,這四個函數(shù)很重要需要掌握

void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_OC3Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_OC4Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);

這個是用來輸出比較結(jié)構(gòu)體賦一個默認(rèn)值的

void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct);

功能運行時更改參數(shù)的函數(shù)

用來配置強(qiáng)制輸出模式的,如果想要在運行中暫停輸出波形并且強(qiáng)制輸出高或低電平 ,可以用下面函數(shù),不過用的不多,因為強(qiáng)制輸出高電平與占空比設(shè)置100%是一樣的,輸出低電平與占空比設(shè)置0%是一樣的。

void TIM_ForcedOC1Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction);
void TIM_ForcedOC2Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction);
void TIM_ForcedOC3Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction);
void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction);

這四個函數(shù)是用來配置CCR寄存器的預(yù)裝功能的,預(yù)裝功能就是影子寄存器,就是寫入的值不會立即生效,而是在更新事件才會生效(一般不用這些函數(shù))

void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);
void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);
void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);
void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);

這四個函數(shù)是用來配置快速使能的(用的也不多)

void TIM_OC1FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast);
void TIM_OC2FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast);
void TIM_OC3FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast);
void TIM_OC4FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast);

在手冊里,外部事件時清除REF信號有介紹。

void TIM_ClearOC1Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear);
void TIM_ClearOC2Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear);
void TIM_ClearOC3Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear);
void TIM_ClearOC4Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear);

?這些是單獨設(shè)置輸出比較的極性的,這里帶N的就是高級定時器里互補(bǔ)通道的配置,OC4沒有互補(bǔ)通道所以就沒有OC4N的函數(shù)

void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);
void TIM_OC1NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity);
void TIM_OC2PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);
void TIM_OC2NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity);
void TIM_OC3PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);
void TIM_OC3NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity);
void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);

下面兩個是用來單獨修改輸出使能參數(shù)的

void TIM_CCxCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx);
void TIM_CCxNCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN);

選擇輸出比較模式,這個是用來單獨更改輸出比較模式的函數(shù)

void TIM_SelectOCxM(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode);

下面四個是用來單獨更改CCR寄存器值的函數(shù),這四個函數(shù)比較重要,我們在運行的時候,更改占空比就需要用到這四個函數(shù)

void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1);
void TIM_SetCompare2(TIM_TypeDef* TIMx, uint16_t Compare2);
void TIM_SetCompare3(TIM_TypeDef* TIMx, uint16_t Compare3);
void TIM_SetCompare4(TIM_TypeDef* TIMx, uint16_t Compare4);

這個函數(shù)僅高級定時器使用在使用高級定時器輸出PWM時,需要調(diào)用這個函數(shù),使能主輸出,否則PWM將不能正常輸出

void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState);

根據(jù)結(jié)構(gòu)圖配置:

1.定義結(jié)構(gòu)體變量

定義GPIO與TIM所需的結(jié)構(gòu)體變量

//-----------------------------定義結(jié)構(gòu)體變量------------------------------TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;//定義TIMBase結(jié)構(gòu)體變量TIM_OCInitTypeDef TIM_OCInitStructure;		    //定義TIMOC結(jié)構(gòu)體變量GPIO_InitTypeDef GPIO_InitStructure;			    //定義GPIO結(jié)構(gòu)體變量
//-----------------------------定義結(jié)構(gòu)體變量------------------------------

2.RCC開啟時鐘

把我們要用到的TIM外設(shè)和GPIO外設(shè)的時鐘打開

3.配置時基單元

包括前面的時鐘源選擇、PSC預(yù)分頻器、CNT計數(shù)器、ARR自動重裝器

//-----------------------------配置時基單元---------------------------------TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;		 //時鐘分頻TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; //計數(shù)器模式  這里選擇向上計數(shù)TIM_TimeBaseInitStructure.TIM_Period = 100 - 1;	     //周期 就是ARR自動重裝器的值TIM_TimeBaseInitStructure.TIM_Prescaler = 720 - 1;		 //是PSC預(yù)分頻器的值TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;	 //重復(fù)計數(shù)器的值(這個是高級寄存器才有的,這里不需要用直接給0)TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStructure);	 //TIM初始化//-----------------------------配置時基單元---------------------------------

4.配置輸出比較單元

里面CCR的值、輸出比較模式、極性選擇、輸出使能這些參數(shù)(用結(jié)構(gòu)體統(tǒng)一配置)

//-----------------------------配置輸出比較單元-----------------------------TIM_OCStructInit(&TIM_OCInitStructure); //給結(jié)構(gòu)體賦一個初始值,因為我們還有其他的變量沒有賦值TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;		//設(shè)置輸出比較模式,這里選擇PWM模式1TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //設(shè)置輸出比較的極性,這里選擇高極性,有效電平是高電平時輸出高電平	 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //設(shè)置輸出使能TIM_OCInitStructure.TIM_Pulse = 50;					        //設(shè)置CCR值TIM_OC1Init(TIM2, &TIM_OCInitStructure);//-----------------------------配置輸出比較單元-----------------------------

5.配置GPIO

把PWM對應(yīng)的GPIO口,初始化為復(fù)用推挽輸出的配置

//-----------------------------配置GPIO初始化------------------------------GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //復(fù)用推挽輸出GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;		 //配置引腳GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度GPIO_Init(GPIOA,&GPIO_InitStructure);//GPIO初始化//-----------------------------配置GPIO初始化------------------------------

6.運行控制

啟動計數(shù)器,輸出PWM

TIM_Cmd(TIM2,ENABLE);//啟動定時器

配置一個頻率為 1KHz,占空比為50%的PWM波形

這里的ARR、PSC與CCR決定占空比

公式:

CK_PSC為72MHz,因為系統(tǒng)時鐘頻率為72MHz.

功能實現(xiàn):

實現(xiàn)呼吸燈效果需要不斷改變占空比的值,需要調(diào)用

void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1);

函數(shù),在運行時不斷改變占空比的值。

功能函數(shù):

void PWM_SetComPer(uint16_t Compare)
{	TIM_SetCompare1(TIM2,Compare);}

主函數(shù):

#include "PWM.h"
int main(void)
{LED_Init();OLED_Init();PWM_Init();uint16_t i = 0;while(1){for(i = 0; i <= 100; i++){PWM_SetComPer(i);Delay_ms(10);}for(i = 0; i <= 100; i++){PWM_SetComPer(100-i);Delay_ms(10);}}	}

http://www.risenshineclean.com/news/55722.html

相關(guān)文章:

  • 沒有網(wǎng)站如何做營銷外包公司和勞務(wù)派遣的區(qū)別
  • 網(wǎng)站建設(shè)經(jīng)費預(yù)算包括哪些app開發(fā)需要多少錢
  • 外包做網(wǎng)站公司客戶管理軟件crm排名
  • 網(wǎng)站建設(shè)與管理說課稿營銷一體化平臺
  • 網(wǎng)站服務(wù)器租用怎么購買360攝像頭海澳門地區(qū)限制解除
  • 小學(xué)生做創(chuàng)客大賽網(wǎng)站的題開魯網(wǎng)站seo
  • wordpress discuz建站手機(jī)軟文廣告300字
  • wordpress標(biāo)簽tag搜索引擎優(yōu)化好做嗎
  • 上海電子商務(wù)網(wǎng)站開發(fā)武漢百度推廣優(yōu)化
  • 網(wǎng)站建設(shè)技術(shù)進(jìn)行開發(fā)鄭州seo代理商
  • 長春網(wǎng)站制作公司哪個好高端seo服務(wù)
  • 上海網(wǎng)站建設(shè)選緣魁百度搜索結(jié)果優(yōu)化
  • 比特幣交易網(wǎng)站可以做空嗎一站式網(wǎng)絡(luò)營銷
  • 昆明網(wǎng)站建設(shè)織夢谷歌play
  • 做模具的網(wǎng)站競價外包
  • 北京通州區(qū)網(wǎng)站制作簡述網(wǎng)絡(luò)營銷的含義
  • 做網(wǎng)站和app有什么區(qū)別seo工資水平
  • 手機(jī)制作網(wǎng)站軟件seo實戰(zhàn)密碼第三版
  • 3小時網(wǎng)站建設(shè)平臺滴滴友鏈
  • 網(wǎng)站建設(shè)流程共有幾個階段百度一下首頁極簡版
  • 輕蜂加速器網(wǎng)站優(yōu)化策略分析
  • 做網(wǎng)站外包大學(xué)生關(guān)于進(jìn)一步優(yōu)化落實疫情防控措施
  • 施工企業(yè)包括哪些市場推廣seo職位描述
  • 國內(nèi)頂尖小程序開發(fā)公司廣州seo排名收費
  • 廈門建設(shè)工程信息網(wǎng)官網(wǎng)seo診斷分析報告
  • 怎么才能建立網(wǎng)站運營培訓(xùn)班有用嗎
  • 兩學(xué)一做注冊網(wǎng)站百度首頁
  • 網(wǎng)站開發(fā)文檔撰寫模板鎮(zhèn)江seo
  • 阿里云做網(wǎng)站需要環(huán)境自己做一個網(wǎng)站要多少錢
  • 沈陽市建設(shè)工程質(zhì)量監(jiān)督局網(wǎng)站神馬推廣登錄