一、時鐘配置
1、STM8S的4種時鐘源可用做主時鐘:
● 1-24MHz高速外部晶體振盪器(HSE)
● 最大24MHz高速外部時鐘信號(HSE user-ext)
● 16MHz高速內部RC振盪器(HSI)
● 128KHz低速內部RC(LSI)
STM8默認時鐘源爲16MHz高速內部RC振盪器(HSI)
對 CLK_CKDIVR設置可以設置時鐘爲HSI的分頻
如 CLK_CKDIVR|= (uint8_t)0x00;/*設置時鐘爲內部16M高速時鐘*/
2分頻爲 CLK_CKDIVR=0x08;4分頻爲 CLK_CKDIVR=0x10;8分頻爲 CLK_CKDIVR=0x18;
二、定時器1設置
1、定時器1CH3輸出PWM
代碼如:
CLK_PCKENR1 |= 0x80;//開啓定時器1外設時鐘
TIM1_EGR = 0x01; //重新初始化TIM1
TIM1_CR1 = 0x00; //B7(0)可以直接寫入 B65(00)邊緣對齊模式B4(0)向上計數B3(0)計數器不停止發生更新事件
TIM1_RCR = 0x00;
//設定預分頻爲,16分頻 16M
TIM1_PSCRH =0x00; //PWM的時鐘 影響週期
TIM1_PSCRL =0x08; //PWM的時鐘 影響週期
TIM1_ARRH = 0x01; //設定重裝載值
TIM1_ARRL = 0x40; //PWM的週期
TIM1_CCER2 = 0x03; //開啓CH3,高電平有效
TIM1_CCMR3 = 0x68; //PWM模式1,CC1配置入輸出
TIM1_CCR3H = 0x00;
TIM1_CCR3L = 0x40; // 佔空比值
// TIM1_DTR = 0x50; // Deadtime generator
TIM1_BKR |= 0x80; //剎車
TIM1_CR1 |= 0x01; //使能TIM1計數器
2、定時器1CH1輸出PWM
代碼如:
TIM1_EGR = 0x01; //重新初始化TIM1
//TIM1_CR1 = 0x00; //B7(0)可以直接寫入 B65(00)邊緣對齊模式B4(0)向上計數B3(0)計數器不停止發生更新事件
// TIM1_RCR = 0x00;
//設定預分頻爲,16分頻 16M
TIM1_PSCRH =0x00; //PWM的時鐘 影響週期
TIM1_PSCRL =0x00; //PWM的時鐘 影響週期
TIM1_ARRH = 0x00; //設定重裝載值
TIM1_ARRL = 0x64; //PWM的週期 100,f=20K,CLK=20*10=2M
//CH1
TIM1_CCER1 = 0x01; //CC2ER1開啓CH1
TIM1_CCMR1 = 0x68; //PWM模式1,CC1配置入輸出
TIM1_CCR1H = 0x00;
TIM1_CCR1L = 0x40; // 佔空比值
TIM1_OISR &= ~0x03;
// TIM1_DTR = 0x50; // Deadtime generator
TIM1_BKR |= 0x80; //剎車
TIM1_CR1 |= 0x01; //使能TIM1計數器
CH1要產生PWM,GPIO要配爲推輓輸出模式
PC_DDR|=0xff;//輸出
PC_CR1|=0xff;//推輓
PC_CR2|=0xf0;//速度
其次,C6引腳要複用爲定時器1的CH1通道
先DEBUG AND RUNINIG,之後會出現ST-LINK選項,點擊後配置option bytes,按圖配置,Alternate即爲1.
3、定時器1CH1與CH3輸出互補的PWM
代碼如:
CLK_PCKENR1|= 0x80;//開啓定時器1外設時鐘
TIM1_EGR = 0x01; //重新初始化TIM1
TIM1_CR1 = 0x00; //B7(0)可以直接寫入 B65(00)邊緣對齊模式B4(0)向上計數B3(0)計數器不停止發生更新事件
TIM1_RCR = 0x00;
//PWM1,預裝載
TIM1_CCMR1=0x68;
//
TIM1_PSCRH =0x00; //PWM的時鐘 影響週期
TIM1_PSCRL =0x00; //PWM的時鐘 影響週期
TIM1_ARRH = 0x07; //設定重裝載值
TIM1_ARRL = 0xD0; //PWM的週期 07D0=2000,CLK=2M,f=1Kh
TIM1_CCER1=0x05; //CH1互補輸出,高電平有效
TIM1_CCR1H = 0x03;
TIM1_CCR1L = 0x00; // 佔空比值
TIM1_CR1 |= 0x01; //使能TIM1計數器
TIM1_DTR = 0x50; // Deadtime generator
TIM1_BKR |= 0x80; //剎車
注意CH3的C3引腳也要複用爲CH1的CH1N通道。