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

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

asp做bs網(wǎng)站怎么寫(xiě)網(wǎng)頁(yè)百度網(wǎng)站優(yōu)化

asp做bs網(wǎng)站怎么寫(xiě)網(wǎng)頁(yè),百度網(wǎng)站優(yōu)化,蘇州企業(yè),品牌網(wǎng)站建設(shè)價(jià)格知不足而奮進(jìn)望遠(yuǎn)山而前行 目錄 文章目錄 前言 學(xué)習(xí)目標(biāo) 學(xué)習(xí)內(nèi)容 PWM pwm原理 需求 開(kāi)發(fā)流程 初始化PWM PWM占空比控制 main函數(shù)修改duty 輸出通道 關(guān)心的內(nèi)容 重要的關(guān)鍵詞 周期 分頻 占空比 總結(jié) 前言 在微控制器開(kāi)發(fā)中,理解和掌握PWM&#x…

知不足而奮進(jìn)·望遠(yuǎn)山而前行


目錄

文章目錄

前言

學(xué)習(xí)目標(biāo)

學(xué)習(xí)內(nèi)容

PWM

pwm原理

需求

開(kāi)發(fā)流程

初始化PWM

PWM占空比控制

main函數(shù)修改duty

輸出通道

關(guān)心的內(nèi)容

重要的關(guān)鍵詞

周期

分頻

占空比

總結(jié)


前言

在微控制器開(kāi)發(fā)中,理解和掌握PWM(脈寬調(diào)制)技術(shù)以及與定時(shí)器的關(guān)系是至關(guān)重要的。PWM技術(shù)可以廣泛應(yīng)用于工業(yè)自動(dòng)化、電機(jī)控制、LED調(diào)光等領(lǐng)域,通過(guò)改變信號(hào)的脈沖寬度來(lái)控制電路輸出。本文將介紹PWM原理、開(kāi)發(fā)流程,以及如何通過(guò)定時(shí)器實(shí)現(xiàn)PWM功能。通過(guò)學(xué)習(xí)本文,您將掌握通用定時(shí)器開(kāi)發(fā)流程,理解周期、分頻系數(shù)、周期計(jì)數(shù)、分頻計(jì)數(shù)等概念,以及掌握分頻計(jì)數(shù)、周期計(jì)數(shù)和占空比的計(jì)算策略。


學(xué)習(xí)目標(biāo)

  1. 理解PWM和定時(shí)器的關(guān)系
  2. 掌握通用定時(shí)器開(kāi)發(fā)流程
  3. 理解周期,分頻系數(shù),周期計(jì)數(shù),分頻計(jì)數(shù)。
  4. 掌握分頻計(jì)數(shù)、周期計(jì)數(shù)和占空比的計(jì)算策略

學(xué)習(xí)內(nèi)容

PWM

PWM全稱(chēng)是脈寬調(diào)制(Pulse Width Modulation),是一種通過(guò)改變信號(hào)的脈沖寬度來(lái)控制電路輸出的技術(shù)。PWM技術(shù)在工業(yè)自動(dòng)化、電機(jī)控制、LED調(diào)光等領(lǐng)域廣泛應(yīng)用。

PWM是一種將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)的技術(shù),它通過(guò)改變信號(hào)的占空比來(lái)控制輸出的電平。

在ARM32系列芯片中,PWM輸出的頻率和占空比可以由程序控制,因此可以用來(lái)控制各種電機(jī)、燈光和其他設(shè)備的亮度、速度等參。

在ARM32系列芯片中,PWM的調(diào)制是通過(guò)Timer來(lái)實(shí)現(xiàn)的。PWM與引腳相關(guān),除了基本定時(shí)器以外,其他類(lèi)型的Timer都可以作為PWM來(lái)進(jìn)行使用。

pwm原理

CHxCV是輸入捕獲和輸出比較寄存器

需求

PD14對(duì)應(yīng)的LED4為例,我們做一個(gè)呼吸燈的效果。

我們采用TIMER3CH2進(jìn)行實(shí)現(xiàn):

開(kāi)發(fā)流程

  1. 添加Timer依賴(lài)
  2. 初始化PWM
  3. PWM占空比控制
初始化PWM

#define	PRESCALER	10		    // [1, 65536]
#define	FREQ		1000		// 1000Hz// 保證分母 (FREQ * PRESCALER) >= 2564
#define PERIOD 				SystemCoreClock / (FREQ * PRESCALER)// TIMER3_CH2
static void Timer_config() {// 通用定時(shí)器// GPIO PD14 =================================================================rcu_periph_clock_enable(RCU_GPIOD);gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_14);gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_MAX, GPIO_PIN_14);gpio_af_set(GPIOD, GPIO_AF_2, GPIO_PIN_14);// TIMER3C0 =================================================================// 初始化定時(shí)器配置rcu_periph_clock_enable(RCU_PERIPH);timer_deinit(TIMER_PERIPH);// 升級(jí)頻率rcu_timer_clock_prescaler_config(RCU_TIMER_PSC_MUL4);// 初始化參數(shù)timer_parameter_struct initpara;/* initialize TIMER init parameter struct */timer_struct_para_init(&initpara);/* 根據(jù)需要配置值 */initpara.prescaler = PRESCALER - 1;	// 分頻系數(shù) (可以實(shí)現(xiàn)更低的timer頻率)// 1個(gè)周期的計(jì)數(shù)(period Max: 65535) Freq > 2564initpara.period		 = PERIOD - 1;/* initialize TIMER counter */timer_init(TIMER_PERIPH, &initpara);// TIMER通道輸出配置timer_oc_parameter_struct ocpara;/* 初始化結(jié)構(gòu)體參數(shù) initialize TIMER channel output parameter struct */timer_channel_output_struct_para_init(&ocpara);/* 啟用TM1 CH0的OP極(正極) */ocpara.outputstate  = (uint16_t)TIMER_CCX_ENABLE;/* 配置輸出參數(shù)configure TIMER channel output function */timer_channel_output_config(TIMER_PERIPH, TIMER_CH, &ocpara);/* 配置通達(dá)輸出比較模式 configure TIMER channel output compare mode */timer_channel_output_mode_config(TIMER_PERIPH, TIMER_CH, TIMER_OC_MODE_PWM0);/* 設(shè)置通道輸出脈沖值 (修改占空比) configure TIMER channel output pulse value */timer_channel_output_pulse_value_config(TIMER_PERIPH, TIMER_CH, (PERIOD - 1) * 1.0f);/* enable a TIMER */timer_enable(TIMER_PERIPH);
}
PWM占空比控制
void PWM_update(float duty) { // 0 -> 100if(duty > 100) {duty = 100;} else if (duty < 0) {duty = 0;}// pulse / (PERIOD - 1) == duty / 100;uint32_t pulse = (PERIOD - 1) * duty / 100.0f;/* 設(shè)置通道輸出脈沖值 (修改占空比) configure TIMER channel output pulse value */timer_channel_output_pulse_value_config(TIMER_PERIPH, TIMER_CH, pulse);}
main函數(shù)修改duty
int main(void)
{nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);systick_config();USART0_init();Timer_config();printf("Init Complete!\n");PWM_update(0);float duty = 0;int dir = 1;while(1) {// printf發(fā)送字符串// 0 -> (PERIOD - 1) -> 0 -> ....if(duty >= 100) {dir = -1;} else if(duty <= 0) {dir = 1;}duty += dir;PWM_update(duty);delay_1ms(10);}
}

輸出通道

這里完整配置為多種:

void timer_channel_output_struct_para_init(timer_oc_parameter_struct *ocpara)
{/* initialize the channel output parameter struct member with the default value */ocpara->outputstate  = (uint16_t)TIMER_CCX_DISABLE;ocpara->outputnstate = TIMER_CCXN_DISABLE;ocpara->ocpolarity   = TIMER_OC_POLARITY_HIGH;ocpara->ocnpolarity  = TIMER_OCN_POLARITY_HIGH;ocpara->ocidlestate  = TIMER_OC_IDLE_STATE_LOW;ocpara->ocnidlestate = TIMER_OCN_IDLE_STATE_LOW;
}

我們具體的可以分為兩類(lèi):

ocpara->outputstate  = (uint16_t)TIMER_CCX_DISABLE;
ocpara->ocpolarity   = TIMER_OC_POLARITY_HIGH;
ocpara->ocidlestate  = TIMER_OC_IDLE_STATE_LOW;
ocpara->outputnstate = TIMER_CCXN_DISABLE;
ocpara->ocnpolarity  = TIMER_OCN_POLARITY_HIGH;
ocpara->ocnidlestate = TIMER_OCN_IDLE_STATE_LOW;

特別觀(guān)察API,帶N的為反向,帶P的為正向。賦值的結(jié)果常量也是需要注意是否帶N。

P和N的配置主要出現(xiàn)在互補(bǔ)PWM中,如果當(dāng)前的Timer不是高級(jí)定時(shí)器,那么就不具備互補(bǔ)的功能,那么我們一律認(rèn)為他是P類(lèi)型,也就是設(shè)置P才有用。

通過(guò)設(shè)置outputstate 的 ENABLE來(lái)控制輸出通道的開(kāi)啟。

關(guān)心的內(nèi)容

  • 哪個(gè)定時(shí)器
  • 哪個(gè)引腳輸出pwm
  • 周期和分頻系數(shù)

重要的關(guān)鍵詞

周期

pwm中,一個(gè)周期就是一次高低電平的變化。

分頻

將原來(lái)的活增加幾倍時(shí)間干完。

占空比

1個(gè)周期內(nèi),高電平出現(xiàn)的比例。


總結(jié)

本文詳細(xì)介紹了PWM技術(shù)以及與定時(shí)器的關(guān)系,通過(guò)示例代碼演示了在ARM32系列芯片中如何實(shí)現(xiàn)PWM功能。首先,我們了解了PWM技術(shù)是如何將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),并通過(guò)改變占空比來(lái)控制輸出電平的。接著,我們學(xué)習(xí)了開(kāi)發(fā)流程,包括如何初始化PWM以及如何控制PWM占空比。最后,我們通過(guò)具體的代碼示例演示了如何在實(shí)際開(kāi)發(fā)中應(yīng)用PWM技術(shù),實(shí)現(xiàn)呼吸燈效果。通過(guò)本文的學(xué)習(xí),相信您已經(jīng)掌握了有關(guān)PWM和定時(shí)器的基本知識(shí)和開(kāi)發(fā)技巧,希望本文能夠?qū)δ膶W(xué)習(xí)和開(kāi)發(fā)有所幫助。

http://m.risenshineclean.com/news/58759.html

相關(guān)文章:

  • 建設(shè)一個(gè)返利網(wǎng)站芭蕉視頻app無(wú)限次數(shù)
  • 可以加外鏈的網(wǎng)站網(wǎng)站seo優(yōu)化免費(fèi)
  • 設(shè)計(jì)師網(wǎng)站知乎最近七天的新聞大事
  • 徐州建設(shè)局網(wǎng)站51趣優(yōu)化網(wǎng)絡(luò)seo工程師教程
  • asp網(wǎng)站開(kāi)發(fā)軟件seo標(biāo)題生成器
  • node.js 網(wǎng)站開(kāi)發(fā)cpc廣告接單平臺(tái)
  • 黃做網(wǎng)站發(fā)廣告平臺(tái)有哪些免費(fèi)
  • 網(wǎng)站推廣有哪些公司可以做網(wǎng)絡(luò)運(yùn)營(yíng)是做什么的工作
  • 銷(xiāo)售型網(wǎng)站seo的范疇是什么
  • 玉林網(wǎng)站建設(shè)公司小說(shuō)引流推廣
  • 江蘇常州青之峰做網(wǎng)站營(yíng)銷(xiāo)頁(yè)面
  • 射洪哪里可以做網(wǎng)站優(yōu)化大師apk
  • 寧波營(yíng)銷(xiāo)型網(wǎng)站建設(shè)可以發(fā)廣告的100個(gè)網(wǎng)站
  • 做二手車(chē)廣告推廣哪家網(wǎng)站好突發(fā)大事震驚全國(guó)
  • 歐陽(yáng)網(wǎng)站建設(shè)平臺(tái)推廣文案
  • 網(wǎng)站建設(shè) 預(yù)算谷歌瀏覽器下載官方正版
  • 大網(wǎng)站服務(wù)器維護(hù)費(fèi)用技能培訓(xùn)班
  • 廣州網(wǎng)站建設(shè)優(yōu)化中國(guó)輿情觀(guān)察網(wǎng)
  • 外貿(mào)網(wǎng)站模板 外貿(mào)網(wǎng)站制作游戲掛機(jī)賺錢(qián)一小時(shí)20
  • 建個(gè)網(wǎng)站多少費(fèi)用游戲代理推廣渠道
  • 網(wǎng)站的建設(shè)模式專(zhuān)業(yè)推廣引流團(tuán)隊(duì)
  • 做網(wǎng)站好平臺(tái)化百度網(wǎng)頁(yè)版主頁(yè)
  • 網(wǎng)頁(yè)動(dòng)畫(huà)制作軟件網(wǎng)站seo專(zhuān)員
  • 網(wǎng)站建設(shè)找金手指排名網(wǎng)站站點(diǎn)
  • 網(wǎng)頁(yè)設(shè)計(jì)與網(wǎng)站建設(shè)完全教程代做百度首頁(yè)排名價(jià)格
  • 四合一小說(shuō)網(wǎng)站搭建教程seo網(wǎng)站seo
  • 什么是網(wǎng)絡(luò)設(shè)計(jì)制作360搜索引擎優(yōu)化
  • 網(wǎng)站建設(shè)的7個(gè)基本流程新網(wǎng)站seo
  • 什么網(wǎng)站可以自己做房子設(shè)計(jì)圖搜索關(guān)鍵詞排名
  • 網(wǎng)站怎么做的黑客入侵網(wǎng)課