娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年05月24日(星期六)

2019年05月24日 | STM32F10X PWM輸出小教程

發布者:星空行者 來源: eefocus關鍵字:STM32F10X  PWM輸出  教程 手機看文章 掃描二維碼
隨時隨地手機看文章

前言:


來溫習下PWM輸出的知識,獻此教程給有所有初學者。


PWM輸出,可以用來做很多事情,呼吸燈,蜂鳴器,當然了最主要的還是 電機和舵機 控制了,主要通過的方式,就是改變占空比,當然就就可以模擬電壓了!  學好這個,你就邁進了控制機器的門!!!


這里我用的開發板時正點原子的MiniSTM32,芯片型號為STM32F103RCT6.   This is easy, so you can do that very easily!


[objc] view plain copy

***REMENBER STM32 is you! :)  

我們在這里進行通俗的講解,詳細的內容,可以在以后再去看STM32手冊。

接下來,還是一塊一塊代碼進行分析,將其中的重點進行說明:



void pwm_Config(u16 period, u16 psc){

 

    GPIO_InitTypeDef GPIO_InitStructure;

  TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

  TIM_OCInitTypeDef TIM_OCInitStructure;

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

這里我們定義函數, 這里不用使用AFIO模式,我們使用TIM1, PA8-通道1 ,PA11-通道4。 stm32f103的TIM的定時器一共有8個

其中可以輸出和捕獲的

其中可以輸出和捕獲的PWM的只有TIM1,TIM8高級定時器 ,  TIM2~TIM5普通定時器。 且能做到互補輸出的只有高級定時器。

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_Init(GPIOA,&GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_Mode,這里必須采用復用推挽輸出GPIO_Mode_AF_PP,不是復用推挽就需要打開AFIO復用模式,是在引腳復用時候需要打開!


  TIM_TimeBaseStructure.TIM_Period = period-1;

  TIM_TimeBaseStructure.TIM_Prescaler = psc-1;

  TIM_TimeBaseStructure.TIM_ClockDivision= 0 ;

  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

  TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);

  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;

TIM_OCInitStructure.TIM_Pulse = 0;

關鍵的地方到了! 一行一行來!

Peroid就是周期,PWM通俗講是有規律的高低電平,比如低電平400,高電平600,那么總的周期就是1000,我們需要改變的占空比就是 低電平/周期   或者高電平/周期。 至于為什么要 -1 ,因為計數從0~9。

Prescaler就是預分頻,我們用的 TIM1 是72MHz的,有些控制是要求頻率限制的,我們計算時PWM頻率是這樣的:假如我們需要1KHz的頻率,1000的周期,那么我們需要輸入的參數為 周期:1000, 預分頻:72, 你會發現 頻率*周期*預分頻 就是72MHz。 接下來有個通俗的講解,分頻后TIM頻率就是 1000KHz ,就是每秒振動1000K下,振動1000下一個周期,其中一個周期振動400下為低電平,振動600下為高電平,換算成時間就是  高電平:400/1000K 就是0.4ms   低電平: 600/1000K 就是0.6ms   一個周期為1ms 。


為了配置上面的參數,就是后面的語句了:

TIM_ClockDivision為時鐘分割,一般的我們都為0,TIM_CounterMode 這個計數模式影響到后面PWM模式,一般的我們采用向上計數模式TIM_CounterMode_Up


TIM_OCMode這里是非常講究的:

PWM模式1- 在向上計數時,一旦TIMx_CNT無效電平;在向下計數時,一旦TIMx_CNT>TIMx_CCR1時通道1為無效電平(OC1REF=0),否

則為有效電平(OC1REF=1)。

PWM模式2- 在向上計數時,一旦TIMx_CNT有效電平;在向下計數時,一旦TIMx_CNT>TIMx_CCR1時通道1為有效電平,否則為無效電

平。

我們這里采用的是PWM模式2,  TIMx_CCR1 為設置比較值,什么是有效電平呢?就是TIM_OCPolarity_High這個表達的意思就是高電平為有效值,TIM_SetCompare1(TIM1,400);設置比較值得時候,意思為1000-400 =600 , 就是占空比為0.4,0.4個周期為低電平,0.6個周期為高電平。

TIM_OutputState設置輸出使能。

TIM_Pulse這里設置一開始默認的比較值。

TIM_OC1Init(TIM1,&TIM_OCInitStructure);

TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable);

TIM_OC4Init(TIM1,&TIM_OCInitStructure);

TIM_OC4PreloadConfig(TIM1,TIM_OCPreload_Enable);

這里我們使用TIM1  得通道1 和通道4 ,初始他們的結構體,然后最重要的的是,還要初始化重復裝載,讓周期重復進行。

TIM_ARRPreloadConfig(TIM1,ENABLE);

     TIM_CtrlPWMOutputs(TIM1,ENABLE);

TIM_Cmd(TIM1,ENABLE);

}

這里初始化 TM1得預裝載,使能PWM輸出,使能TIM1,這些都是常見得必須配置。

到這里整個初始化函數,就配置結束了,我們改變它得占空比,就可以通過


TIM_SetCompare1(TIM1,400);   //通道1的比較值

TIM_SetCompare4(TIM1,400);   //通道4的比較值


是不是很簡單??!說實話,如果你是單片機創建者,考慮這些參數配置,其實都是很有必要的。

關鍵字:STM32F10X  PWM輸出  教程 引用地址:STM32F10X PWM輸出小教程

上一篇:STM32F10X ADC多通道讀取小教程(包含DMA)
下一篇:STM32的SysTick定時器與Delay延時函數

推薦閱讀

近日,2018年美國國際顯示周及SID(國際信息顯示學會)年會展在美國洛杉磯會議中心舉行。作為全球顯示領域頂級盛會,各大廠商紛紛展示當今顯示領域的最新技術和產品。在此次展會上,國產顯示屏廠商天馬展示了工控、醫療、智能家居、車載和新技術五大主題的顯示解決方案,多款技術產品全球首發。其中,天馬新一代AA Hole LTPS全面屏產品引人注目。這款屏...
人工智能是新一輪產業變革的核心驅動力,將進一步釋放歷次科技革命和產業變革積蓄的巨大能量,我國政府高度重視人工智能的技術進步與產業發展,人工智能已上升國家戰略。自2006年深度學習算法被提出,人工智能技術應用取得突破性發展。2012年以來,數據的爆發式增長為人工智能提供了充分的“養料”,深度學習算法在語音和視覺識別上實現突破,令人工智能產...
據中國貿易救濟信息網顯示,美國國際貿易委員會(ITC)于5月21日投票決定對特定液晶顯示屏、組件及其下游產品(Certain Liquid Crystal Display Devices, ComponentsThereof, and Products Containing the Same)啟動337調查(調查編碼:337-TA-1201)。該調查由日本夏普公司和美國夏普電子公司于4月21日依據《美國1930年關稅法》第337節規定向...
100%使用可再生能源;凈零排放平臺2021年5月24日——負責保護和交付數字化體驗且深受全球企業信賴的解決方案提供商阿卡邁技術公司(Akamai Technologies, Inc.,以下簡稱:Akamai) 近日宣布了全球可持續發展計劃的新目標。新目標涵蓋五項,預計將到2030年得以實現。這些目標主要集中在三個方面:Akamai智能邊緣平臺(Akamai Intelligent Edge Platf...

史海拾趣

問答坊 | AI 解惑

系統布線設計-電磁兼容設計及測試

印制板設計出來后,進行試制,焊接調試,系統裝機,考慮電磁兼容設計因素,機柜結構、線纜設計需要注意以下幾個方面: 1、機柜選用電磁屏蔽柜,具有良好的屏蔽性能,很好地對系統進行屏蔽,降低外界電磁干擾對系統的影響。 2、總電源進線選用屏 ...…

查看全部問答∨

哪位做過2410的PWM驅動?

哪位做過2410的PWM驅動?發我一份?。毙瑁。。。 ?

查看全部問答∨

有兩個問題請教大家???

1. 怎么在編wince時指定某個dll在RAMIMAGE中的位置比如0x50200000 2. 怎么編iesample,我到PUBLIC/COMMON/IE下執行build -c,只生成了*.obj,怎么生成ie…

查看全部問答∨

ce4.2支持 22寸寬屏?

如題, 要改哪些地方? 英雄!…

查看全部問答∨

流明LM3S9B90微控制器特點

  德州儀器(TI)公司Stellaris®所提供一系列的微控制器是首款基于ARM® CortexTM-M3的控制器,它們為對成本尤其敏感的嵌入式微控制器應用方案帶來了高性能的32位運算能力。這些具備領先技術的芯片使用戶能夠以傳統的8位和16位器件的價位來 ...…

查看全部問答∨

有源濾波器

本帖最后由 paulhyde 于 2014-9-15 03:46 編輯 《有源濾波器的快速實用設計》 是一本較早的書 由D.E 約翰遜 和 J.L 希爾伯恩 編著的 介紹了各種常用的有源濾波器的基本理論,電路形式和相應曲線,分析了它們的優缺點詳細給出了用圖表快速進行設計 ...…

查看全部問答∨

RTT中應用LWIP協議 建立TCP連接(bind socket) 發送數據非const數據的問題?

int lwip_send(int s, const void *data, size_t size, int flags) int lwip_sendto(int s, const void *data, size_t size, int flags,const struct sockaddr *to, socklen_t tolen) int lwip_write(int s, const void *data, size_t size) ...…

查看全部問答∨

HSC08 匯編

HSC08  匯編編程的例子誰有,發點來學習學習啊  我用MC9s08FL16RM…

查看全部問答∨

PSpice器件模型庫介紹

PSpice的仿真庫文件比較多,附件是一些主要庫模塊介紹,希望對大家有所幫助。 …

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 汝州市| 颍上县| 凤山市| 金湖县| 开平市| 兴化市| 漾濞| 柞水县| 柳州市| 邓州市| 西林县| 佛山市| 遂川县| 彰武县| 平武县| 即墨市| 密山市| 精河县| 三亚市| 东辽县| 布尔津县| 东莞市| 曲水县| 井冈山市| 永嘉县| 公安县| 黄大仙区| 大厂| 林芝县| 恭城| 增城市| 天水市| 韶关市| 呼图壁县| 云霄县| 卓尼县| 三门峡市| 博客| 黄梅县| 寻甸| 岢岚县|