您的位置 首页 IC

STM8S使用STVP方法进行IO复用剖析

STM8S利用STVP方式进行IO复用分析-STM8S的IO复用用程序代码配置起来比较麻烦,一般是操作flash来操作option byte字节,配置寄存器更加麻烦,可以使用STM 标准外设驱动库来设置。本文使用一种界面配置的方式来配置IO复用管脚,即使用STVP来配置。 因为FLASH保存的数据是掉电不丢失的,先用STVP把Option Bytes擦写好后,再用STVD仿真器烧写程序就可实现IO复用了。

1 阐明

STM8S的IO复用用程序代码装备起来比较费事,一般是操作flash来操作opTIon byte字节,装备寄存器愈加费事,能够运用STM 规范外设驱动库来设置。本文运用一种界面装备的方法来装备IO复用管脚,即运用STVP来装备。 由于FLASH保存的数据是掉电不丢掉的,先用STVP把OpTIon Bytes擦写好后,再用STVD仿真器烧写程序就可完成IO复用了。

程序方法装备IO复用见这儿

STM8S使用STVP方法进行IO复用剖析

2 装备流程

【step1】翻开STVP软件

STM8S使用STVP方法进行IO复用剖析

【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; //设置PD2端口为输出形式

PD_CR1 |= 0X04; //设置PD2端口为推挽输出形式

PD_CR2 &= 0XFD;

PA_DDR |= 0X08; //设置PA3端口为输出形式

PA_CR1 |= 0X08; //设置PA3端口为推挽输出形式

PA_CR2 |= 0XF7;

}

void main(void)

{

CLK_init();

Init_GPIO();

Init_Tim2();

while (1);

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/102869.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部