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,有可能能够被配置 ...
随机推荐
- Oracle多实例的配置方法
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME /dbhome_2) (PROGRAM ...
- 基于Qt的FreeType字体轮廓解析
一.本文目的 以前的文档中.详细的介绍了FreeType开源字体引擎库的基础知识.基本用法.但并未详细的阐明在TurboCG中.是如何解析出一个文字的轮廓的,本文集中阐述.怎么样使用FreeType开 ...
- 【老鸟学算法】大整数乘法——算法思想及java实现
算法课有这么一节,专门介绍分治法的,上机实验课就是要代码实现大整数乘法.想当年比较混,没做出来,颇感遗憾,今天就把这债还了吧! 大整数乘法,就是乘法的两个乘数比较大,最后结果超过了整型甚至长整型的最大 ...
- qingshow “不积跬步无以至千里,不积小流无以成江海”。--荀子《劝学篇》 用tomcat+花生壳搭建自己的web服务器+域名(参考)
链接地址:http://www.blogjava.net/qingshow/archive/2010/01/17/309846.html 用tomcat搭建web服务器 目标:免费拥有自己的网站及域名 ...
- “/” 应用程序中的服务器错误 - IIS 发布错误
解决方法, 将bin目录下的全部文件复制到iis下
- [置顶] Windows Phone后台音乐详解一
应用于: Windows Phone 8 | Windows PhoneOS 7.1 你可以为winphone编写在后台播放音乐的app.这表示即使当用户点击返回或开始按钮离开你的应用界面时,你的应用 ...
- Java中int类型和tyte[]之间转换及byte[]合并
JAVA基于位移的 int类型和tyte[]之间转换 [java] view plaincopy /** * 基于位移的int转化成byte[] * @param int number * @retu ...
- GDI+ Tutorial for Beginners
原文 GDI+ Tutorial for Beginners GDI+ is next evolution of GDI. Using GDI objects in earlier versions ...
- MongoDB shell操作
shell命令操作语法和JavaScript很类似,其实控制台底层的查询语句都是用JavaScript脚本完成操作的.使用shell 命令,需要启动mongo.exe. 常用shell命令如下: 1. ...
- 屏蔽EditText长按导致的弹出输入法的对话框
做了个能手动拖动的EditText,但有个问题导致的体验很不好,就是手放上去开始拖,拖到一段距离后弹出个输入法的对话框,这根本不是我想要的效果,于是就想屏蔽它,结果在网上找到一句代码,放上去 顿时解决 ...