STM8S---IO复用配置(STVP方式)
生活随笔
收集整理的這篇文章主要介紹了
STM8S---IO复用配置(STVP方式)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 說明
STM8S的IO復用用程序代碼配置起來比較麻煩。通常是操作flash來操作option byte字節。配置寄存器更加麻煩,能夠使用STM 標準外設驅動庫來設置。
本文使用一種界面配置的方式來配置IO復用管腳,即使用STVP來配置。 由于FLASH保存的數據是掉電不丟失的,先用STVP把Option Bytes擦寫好后,再用STVD仿真器燒敲代碼就可實現IO復用了。
??程序方式配置IO復用見這里
2 配置流程
【step1】打開STVP軟件
【step2】打開我們須要下載的xxx.s19文件,CTRL+F5(File->Ram Exec)
【step3】配置須要復用的引腳
IO口的復用功能主要配置在于AFR0-AFR7。這里我們配置定時器TIM2_CH3通道的PWM輸出管腳復用,默認是PD2為輸出,將其配置成復用為PA3輸出。如上圖,在AFR1中的下拉菜單中選擇PA3就可以。
【step4】下載程序到STM8S中。Progam->All tabs。這樣就實現了IO復用配置。
3 測試程序
/*
TIM2_CH3 PWM
PD2 output
*/
#include <STM8S103F3P.h>
void CLK_init(void)
{
CLK_ICKR |= 0X01; //使能內部快速時鐘 HSI
CLK_CKDIVR |= 0x08; // 16M內部RC經2分頻后系統時鐘為8M
while(!(CLK_ICKR&0x02));//HSI準備就緒
CLK_SWR=0xe1; //HSI為主時鐘源
}
void Init_Tim2(void)
{
TIM2_CCMR3 |= 0X70; //設置定時器2三通道(PD2)輸出比較三模式
TIM2_CCMR3 |= 0X04; //輸出比較3預裝載使能
TIM2_CCER2 |= 0x03; //通道3使能。低電平有效。配置為輸出
// 初始化時鐘分頻器為1。即計數器的時鐘頻率為Fmaster=8M/64=0.125MHZ
TIM2_PSCR = 0X06;
//初始化自己主動裝載寄存器。決定PWM 方波的頻率,Fpwm=0.125M/62500=2HZ
TIM2_ARRH = 62500/256;
TIM2_ARRL = 62500%256;
//初始化比較寄存器,決定PWM 方波的占空比:5000/10000 = 50%
TIM2_CCR3H = 31250/256;
TIM2_CCR3L = 31250%256;
// 啟動計數;更新中斷失能
TIM2_CR1 |= 0x81;
//TIM2_IER |= 0x00;
}
void Init_GPIO(void)
{
/*設置為推挽輸出,PD2接了LED燈*/
PD_DDR |= 0X04; //設置PD2port為輸出模式
PD_CR1 |= 0X04; //設置PD2port為推挽輸出模式
PD_CR2 &= 0XFD;
PA_DDR |= 0X08; //設置PA3port為輸出模式
PA_CR1 |= 0X08; //設置PA3port為推挽輸出模式
PA_CR2 |= 0XF7;
}
void main(void)
{
CLK_init();
Init_GPIO();
Init_Tim2();
while (1);
}
總結
以上是生活随笔為你收集整理的STM8S---IO复用配置(STVP方式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ranorex官网
- 下一篇: Scrum里面猪和鸡的角色