STM8S---IO复用配置(STVP方式)
- 1 说明
- 
STM8S的IO复用用程序代码配置起来比較麻烦。通常是操作flash来操作option byte字节。配置寄存器更加麻烦,能够使用STM 标准外设驱动库来设置。 本文使用一种界面配置的方式来配置IO复用管脚,即使用STVP来配置。 由于FLASH保存的数据是掉电不丢失的,先用STVP把Option Bytes擦写好后,再用STVD仿真器烧敲代码就可实现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方式)的更多相关文章
- IO复用三种方式
		简介 IO复用技术,简单来说就是同时监听多个描述符.在没有用到IO复用以前,只能是一个线程或一个 线程去监听,服务端同时有多个连接的时候,需要创建多个线程或者进程.而且,并不是所有的连 接是一直在传输 ... 
- linux的IO复用,select机制理解--ongoing
		一:首先需要搞清楚IO复用.阻塞的概念: Ref: https://blog.csdn.net/u010366748/article/details/50944516 二:select机制 作为IO ... 
- STM8S---选项字节(Option Byte)写操作之IO复用
		功能实现目标 通过对选项字节的写操作来实现TIM2的CH3通道的PWM输出IO复用.能够设置为PA3或者PD2输出. 通过STVP方式操作链接 选项字节 选项字节包含芯片硬件特性的配置和存储器 ... 
- 14.6.7 Configuring the Number of Background InnoDB IO Threads   配置InnoDB IO Threads的数量
		14.6.7 Configuring the Number of Background InnoDB IO Threads 配置InnoDB IO Threads的数量 InnoDB 使用后台线程来服 ... 
- Linux中的IO复用接口简介(文件监视?)
		I/O复用是Linux中的I/O模型之一.所谓I/O复用,指的是进程预先告诉内核,使得内核一旦发现进程指定的一个或多个I/O条件就绪,就通知进程进行处理,从而不会在单个I/O上导致阻塞. 在Linux ... 
- IO复用
		IO复用:使得程序能同时监听多个文件描述符 select: select在一段指定的时间内,监听用户感兴趣的文件描述符的 读.写.异常事件. select(int nfds,fd_set* readf ... 
- IO复用(较详细)
		进程与线程的描述 一个进程至少会创建一个线程,多个线程共享一个程序进程的内存.程序的运行最终是靠线程来完成操作的.线程的数量跟CPU核数有关,一个核最多能发出两个线程.线程的操作主要分为:一:给CPU ... 
- IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别参考
		参考https://www.cnblogs.com/aspirant/p/6877350.html?utm_source=itdadao&utm_medium=referral IO复用,AI ... 
- 迅为iTOP-4418/6818开发板-驱动-IO初始化配置介绍和例程
		对于所有的处理器,pad 一般可以分为两大类:IO(输入输出).Power(VDD 和GDD).类似摄像头 IO.以太网 IO.PWM 的 IO 等等,都可以统称为 IO.一个 IO,有可能能够被配置 ... 
随机推荐
- [Android] Activity 重复使用
			Intent intent = new Intent(A.this, B.class); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | ... 
- mysql 如何修改、添加、删除表主键
			在我们使用mysql的时候,有时会遇到须要更改或者删除mysql的主键,我们能够简单的使用alter table table_name drop primary key;来完成.以下我使用数据表tab ... 
- uboot代码1:uboot启动大体流程, stage1 + stage2
			start.S stage 1: reset: set the cpu to svc32 mode disable the watchdog mask all IRQs(INTMSK, INTSUBM ... 
- linux: Ubuntu安装samba的问题
			Ubuntu安装samba的问题 http://blog.csdn.net/jk110333/article/details/8920841 root@ubuntu:~# apt-get instal ... 
- perl json模块
			JSON - JSON (JavaScript Object Notation) encoder/decoder 简介: use JSON; # imports encode_json, decode ... 
- 为什么函数式编程在Java中很危险?
			摘要:函数式编程这个不温不火的语言由来已久.有人说,这一年它会很火,尽管它很难,这也正是你需要学习的理由.那么,为什么函数式编程在Java中很危险呢?也许这个疑问普遍存在于很多程序员的脑中,作者Ell ... 
- SilkTest Q&A 13
			Q121 :我想要测试 windows2003 上的 remote 应用,但是每次都得到如下的错误 我想要测试 windows2003 上的 remote 应用,但是每次都得到如下的错误: " ... 
- QNX简介<转载>
			QNX QNX是由QNX软件系统有限公司开发的实时操作系统. http://blog.csdn.net/happyhell/article/details/7087199 基本特征 * QNX是一个 ... 
- OpenSSL---堆栈
			堆栈是一种先进后出的数据结构.是一种只允许在其一端进行插入或者删除的线性表.允许插入或删除操作的一端为栈顶,另一端称为栈底.对堆栈的插入和删除操作称为入栈和出栈. 1.1 概述 OpenSSL ... 
- haproxy   timeout server 46000  后台超时时间
			[root@wx03 ~]# sh ./1.sh Wed Jul 6 19:54:40 CST 2016 <html><body><h1>504 Gateway T ... 
