日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

STM8S---IO复用配置(STVP方式)

發布時間:2023/12/13 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 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方式)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。