1. 程式人生 > >STM8S105系列微控制器的PWM輸出配置

STM8S105系列微控制器的PWM輸出配置

STM8S105xx的定時器資源:

(1)2個16位通用定時器(TIM2、TIM3),帶有2+3個CAPCOM通道(IC、OC或PWM);

(2)高階控制定時器(TIM1):16位,4個CAPCOM通道(捕獲/比較通道),3個互補輸出,死區插入和靈活的同步;

(3)帶有8位預分頻器的8位基本定時器(TIM4);

(4)自動喚醒定時器;

(5)2個看門狗定時器:視窗看門狗和獨立看門狗。

使用高階控制定時器和普通通用定時器的PWM輸出功能在初始化配置上有差異,下面做簡單分析:

TIM1——16位高階控制定時器

帶有16位預分頻的16位遞增、遞減和雙向自動重灌載計數器

TIM2、TIM3——16位通用定時器

16位向上計數和自動裝載計數器

15位預分頻器,分頻係數可調整為1~32768之間的2次冪數值

TIM4——8位基本定時器

8位自動裝載可調整的預分頻器,比例可選為1~128之間的2次冪

配置TIM1_CH1的PWM輸出功能:

void Time1_Init()

{

      CLK->CKDIVR=0x00; 

      /*
     * 這裡設定TIM2的計數頻率為 16M/1600=10000Hz
     */

      TIM1_TimeBaseInit(1599,TIM1_COUNTERMODE_UP,2000,0); //分頻1600,向上計數,TIM1_ARR=1000,重複計數器為0

    /*OC1初始化:

PWM1模式

                               輸出使能

                               互補輸出不使能

                               CCR1=1000,佔空比為50%

                               輸出有效極性為高

                               互補輸出有效極性為高(無作用)

                               空閒時輸出高

                               空閒時互補輸出高(無作用)

     */

      TIM1_OC1Init(TIM1_OCMODE_PWM1,

      TIM1_OUTPUTSTATE_ENABLE,

      TIM1_OUTPUTNSTATE_DISABLE,

      1000,

      TIM1_OCPOLARITY_HIGH,

      TIM1_OCNPOLARITY_HIGH,

      TIM1_OCIDLESTATE_SET,

      TIM1_OCNIDLESTATE_SET);

      TIM1_OC1PreloadConfig(ENABLE);  

      TIM1_CtrlPWMOutputs(ENABLE);  //PWM輸出使能

      TIM1_Cmd(ENABLE);     //定時器開始計數

配置TIM2_CH1的PWM輸出功能:

void TIMER2_PWMInit(unsigned short timebase,unsigned short t)
{
      TIM2_DeInit();  
      /*
       * TIM2 Frequency = TIM2 counter clock/(ARR + 1) 
       * 這裡設定TIM2的計數頻率為 16M/32/(timebase+1)=1K
       */
      TIM2_TimeBaseInit(TIM2_PRESCALER_32, timebase);
    
      /* 
       * PWM1 Mode configuration: Channel1
       * TIM2 Channel1 duty cycle = [TIM2_CCR1/(TIM2_ARR + 1)] * 100 = 50%
       * TIM2 Channel2 duty cycle = [TIM2_CCR2/(TIM2_ARR + 1)] * 100 = 50%
       */ 
    
      /* 測試通道1 */
      TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE, t, TIM2_OCPOLARITY_HIGH);
      TIM2_OC1PreloadConfig(ENABLE);
     
      TIM2_Cmd(ENABLE);
}

相關推薦

STM8S105系列微控制器PWM輸出配置

STM8S105xx的定時器資源: (1)2個16位通用定時器(TIM2、TIM3),帶有2+3個CAPCOM通道(IC、OC或PWM); (2)高階控制定時器(TIM1):16位,4個CAPCOM通

微控制器PWM輸出控制直流電機(89c51系列、stc12c5a60s2系列

目錄 【pwm是如何控制電機轉速】 【89C51系列微控制器產生pwm波】 【STC12C5A60S2系列微控制器輸出PWM】 【pwm是如何控制電機轉速】 在本科學習中,學生所做的小車多數為使用lm298n或者tb6612來驅動簡單的直流電機,我們需要微控制器輸出pwm

痞子衡嵌入式:飛思卡爾i.MX RT系列微控制器啟動篇(2)- Boot配置(BOOT_CFG Pin/eFUSE)

TP 執行 不同 mcu 更新 oom als 配置 示例   大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的Boot配置。   在上一篇文章 飛思卡爾i.MX RT系列微控制器啟動篇(1)- Boot簡介 裏痞子衡為大

stm32f411 配置 TIM 做 PWM 輸出

STM32F4 沒有專用的PWM模組模組,PWM 是通過定時器TIM產生的。 下面這個文章講述了用STM32CubeMX 配置TIM生成PWM的過程。 http://www.stmcu.org.cn/module/forum/thread-599931-1-1.html STM32Cub

Spring Boot系列教程六:日誌輸出配置log4j2

一.前言  spring boot支援的日誌框架有,logback,Log4j2,Log4j和Java Util  Logging,預設使用的是logback日誌框架,筆者一直在使用log4j2,並且看過某博主寫的一篇這幾個日誌框架的效能比對,決定仍使用log4j2,本文章

IAR開發環境使用串列埠printf輸出(基於STM8L15x系列微控制器

這裡我們以STM8L15x系列微控制器使用ADC內部參考電壓測量VDD電壓並將電壓值value通過視窗列印為例編寫程式,相關的adc配置可參見另一篇部落格http://blog.csdn.net/m0_37973607/article/details/77141756(STM8L使用ADC內部參考電壓通道

STM32的TIM2的PWM輸出配置無效

1、今天測試發現,對TIM2的PWM輸出無效,原來是 TIM2的時鐘寫錯了:RCC_APB2PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);應該改為 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM

Redis系列--2、Redis配置

redis配置詳解1、Redis配置在Redis有配置文件(redis.conf)可在Redis的根目錄下找到。可以通過Redis的CONFIG命令設置所有Redis的配置。2、配置文件說明:1. Redis默認不是以守護進程的方式運行,可以通過該配置項修改,使用yes啟用守護進程 daemonize

STM32 PWM輸出(映射)

ocm base term period 修改 etc cmd struct 映射   STM32 的定時器除了 TIM6 和 7。其他的定時器都可以用來產生 PWM 輸出。其中高級定時器 TIM1 和 TIM8 可以同時產生多達 7 路的 PWM 輸出。而通用定時器也能同

Spring Boot系列教程四:配置文件詳解properties

date int ava ota axu return 端口 rand work 一.配置隨機數,使用隨機數 在application.properties文件添加配置信息 1 #32位隨機數 2 woniu.secret=${random.value} 3 #隨機整數

公司nginx keepalived tomcat cxf 搭建高可用負載均衡實戰系列1- keepalived安裝配置

技術分享 cnblogs start ges idt def auth div .cn 1,ip說明 vip 10.50.13.67 server1 10.50.13.68 server2 10.50.13.140 2

STM8 關閉PWM輸出後的電平輸出問題解決

put 狀態 問題解決 高電平 電平 _for 寄存器 als 執行 STM系列的單片機PWM輸出如果被關斷比如用TIM1_CtrlPWMOutputs進行停止輸出後,電平的高低處於不確定的狀態。 他取決於: 1.GPIO初始化的特性 2.關斷那一刻時的電平 3.CCMR1

Nginx系列--03HTTP段基本配置及虛擬主機

HTTP段基本配置 Nginx虛擬主機配置 HTTP協議配置格式 http { ... ...:各server的公共配置 server { ... }:每個server用於定義一個虛擬主機; server { ...

5.Spring系列之Bean的配置2

不能 rda 根據 div post body OS gpo nbsp 一、配置Bean的兩種方式之使用XML配置Bean 1.Bean的自動裝配 ①.Spring IOC 容器可以自動裝配 Bean. 需要做的僅僅是在 <bean> 的 autowire 屬

6.Spring系列之Bean的配置3

enc 1.7 ole lex mysq get style 後置 分配 一、配置Bean的兩種方式之使用XML配置Bean 1.在IOC容器中引入外部屬性文件 在IOC容器中,當配置 Bean 時, 有時需要在 Bean 的配置裏引入系統部署的相關信息(例如:文件路徑、

RedHat系列一些重要的配置文件(持續更新)

ica lis ifcfg sde scripts 全局環境變量 掛載 dha 系統 1.網卡配置文件: /etc/sysconfig/network-scripts/ifcfg-ens(redhat7)/etc/sysconfig/network-scripts/et

痞子衡嵌入式:飛思卡爾i.MX RT系列微控制器介紹篇(3)- 命名規則

rule 成員 oom 嵌入 信息 100% 規則 控制器 今天   大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的命名規則。   打開任何一款i.MX RT系列芯片的Data Sheet均可找到如下命名規則表,以i.M

痞子衡嵌入式:飛思卡爾i.MX RT系列微控制器啟動篇(3)- Serial Downloader模式(sdphost/mfgtool)

efi RM pda lock mman www. esc https conn   大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的Serial Downloader模式。   在上一篇文章 飛思卡爾i.MX RT系列微

痞子衡嵌入式:飛思卡爾i.MX RT系列微控制器啟動篇(6)- Bootable image格式與加載(elftosb/.bd/.bin)

before 詳細介紹 tab true 加載完成 table sdp 推薦 包含   大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的Bootable image格式與加載過程。   在i.MXRT啟動系列第三篇文章 飛

痞子衡嵌入式:飛思卡爾i.MX RT系列微控制器啟動篇(9)- 從Parallel NOR啟動

16bit erase section cloud 你會 命令執行 選型 兩個 寬度   大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的Parallel NOR啟動。   上一篇講i.MXRT從Raw NAND啟動的文章