码迷,mamicode.com
首页 > 其他好文 > 详细

STM8S---IO复用配置

时间:2015-07-06 14:17:39      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:stm8s   stm8s-io复用   io复用stvp配置   单片机   

1 说明

STM8S的IO复用用程序代码配置起来比较麻烦,一般是操作flash来操作option byte字节,配置寄存器更加麻烦,可以使用STM 标准外设驱动库来设置。本文使用一种界面配置的方式来配置IO复用管脚,即使用STVP来配置。
技术分享

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;     //设置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);
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

STM8S---IO复用配置

标签:stm8s   stm8s-io复用   io复用stvp配置   单片机   

原文地址:http://blog.csdn.net/freeape/article/details/46773155

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!