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 測试程序

  1. /*
  2. TIM2_CH3 PWM
  3. PD2 output
  4. */
  5. #include <STM8S103F3P.h>
  6. void CLK_init(void)
  7. {
  8. CLK_ICKR |= 0X01; //使能内部快速时钟 HSI
  9. CLK_CKDIVR |= 0x08; // 16M内部RC经2分频后系统时钟为8M
  10. while(!(CLK_ICKR&0x02));//HSI准备就绪
  11. CLK_SWR=0xe1; //HSI为主时钟源
  12. }
  13. void Init_Tim2(void)
  14. {
  15. TIM2_CCMR3 |= 0X70; //设置定时器2三通道(PD2)输出比較三模式
  16. TIM2_CCMR3 |= 0X04; //输出比較3预装载使能
  17. TIM2_CCER2 |= 0x03; //通道3使能。低电平有效。配置为输出
  18. // 初始化时钟分频器为1。即计数器的时钟频率为Fmaster=8M/64=0.125MHZ
  19. TIM2_PSCR = 0X06;
  20. //初始化自己主动装载寄存器。决定PWM 方波的频率,Fpwm=0.125M/62500=2HZ
  21. TIM2_ARRH = 62500/256;
  22. TIM2_ARRL = 62500%256;
  23. //初始化比較寄存器,决定PWM 方波的占空比:5000/10000 = 50%
  24. TIM2_CCR3H = 31250/256;
  25. TIM2_CCR3L = 31250%256;
  26. // 启动计数;更新中断失能
  27. TIM2_CR1 |= 0x81;
  28. //TIM2_IER |= 0x00;
  29. }
  30. void Init_GPIO(void)
  31. {
  32. /*设置为推挽输出,PD2接了LED灯*/
  33. PD_DDR |= 0X04; //设置PD2port为输出模式
  34. PD_CR1 |= 0X04; //设置PD2port为推挽输出模式
  35. PD_CR2 &= 0XFD;
  36. PA_DDR |= 0X08; //设置PA3port为输出模式
  37. PA_CR1 |= 0X08; //设置PA3port为推挽输出模式
  38. PA_CR2 |= 0XF7;
  39. }
  40. void main(void)
  41. {
  42. CLK_init();
  43. Init_GPIO();
  44. Init_Tim2();
  45. while (1);
  46. }

STM8S---IO复用配置(STVP方式)的更多相关文章

  1. IO复用三种方式

    简介 IO复用技术,简单来说就是同时监听多个描述符.在没有用到IO复用以前,只能是一个线程或一个 线程去监听,服务端同时有多个连接的时候,需要创建多个线程或者进程.而且,并不是所有的连 接是一直在传输 ...

  2. linux的IO复用,select机制理解--ongoing

    一:首先需要搞清楚IO复用.阻塞的概念: Ref:  https://blog.csdn.net/u010366748/article/details/50944516 二:select机制 作为IO ...

  3. STM8S---选项字节(Option Byte)写操作之IO复用

    功能实现目标   通过对选项字节的写操作来实现TIM2的CH3通道的PWM输出IO复用.能够设置为PA3或者PD2输出. 通过STVP方式操作链接 选项字节   选项字节包含芯片硬件特性的配置和存储器 ...

  4. 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 使用后台线程来服 ...

  5. Linux中的IO复用接口简介(文件监视?)

    I/O复用是Linux中的I/O模型之一.所谓I/O复用,指的是进程预先告诉内核,使得内核一旦发现进程指定的一个或多个I/O条件就绪,就通知进程进行处理,从而不会在单个I/O上导致阻塞. 在Linux ...

  6. IO复用

    IO复用:使得程序能同时监听多个文件描述符 select: select在一段指定的时间内,监听用户感兴趣的文件描述符的 读.写.异常事件. select(int nfds,fd_set* readf ...

  7. IO复用(较详细)

    进程与线程的描述 一个进程至少会创建一个线程,多个线程共享一个程序进程的内存.程序的运行最终是靠线程来完成操作的.线程的数量跟CPU核数有关,一个核最多能发出两个线程.线程的操作主要分为:一:给CPU ...

  8. IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别参考

    参考https://www.cnblogs.com/aspirant/p/6877350.html?utm_source=itdadao&utm_medium=referral IO复用,AI ...

  9. 迅为iTOP-4418/6818开发板-驱动-IO初始化配置介绍和例程

    对于所有的处理器,pad 一般可以分为两大类:IO(输入输出).Power(VDD 和GDD).类似摄像头 IO.以太网 IO.PWM 的 IO 等等,都可以统称为 IO.一个 IO,有可能能够被配置 ...

随机推荐

  1. HDU 4160 Dolls (最小路径覆盖=顶点数-最大匹配数)

    Dolls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  2. NGUI 3.5教程(二)Label 标签 (Hello world)、多行文本

    写在前面:     本文将创建NGUI的第一个样例.依照编程传统,第一个样例,就是做一个Hello world 显示出来.NGUI.我们用Label来实现 . 欢迎大家纠错.拍砖!原创非常辛苦,如有转 ...

  3. maven本地jar

    <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId&g ...

  4. android获取View上某点的颜色

    //根据坐标获取 ImageView imageView = ((ImageView)v); Bitmap bitmap = ((BitmapDrawable)imageView.getDrawabl ...

  5. UML01-概述

    1.UML中的泛化关系用什么符号表示? 2.UML的英文全称是什么? 3.UML图不包括流程图. 4.对一个重要的系统有时要用多个模型就才能充分描述.

  6. DELPHI语法基础学习笔记-Windows 句柄、回调函数、函数重载等(Delphi中很少需要直接使用句柄,因为句柄藏在窗体、 位图及其他Delphi 对象的内部)

    函数重载重载的思想很简单:编译器允许你用同一名字定义多个函数或过程,只要它们所带的参数不同.实际上,编译器是通过检测参数来确定需要调用的例程.下面是从VCL 的数学单元(Math Unit)中摘录的一 ...

  7. WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘

    原文:WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘 通过<再谈IIS与ASP.NET管道>的介绍,相信读者已经对IIS和ASP.NET的请求处理管道有了一个大致 ...

  8. Ajax Post提交事例及SpringMVC注解@RequestMapping取不到参数值解决办法

    var xmlHttp; //定义变量,用来创建xmlHttp对象 function ajaxfunction(url,onreadystatechangMethod,param){ // 创建xml ...

  9. 基于visual Studio2013解决C语言竞赛题之1030计算函数

          题目 解决代码及点评 /********************************************************************** ...

  10. poj1830

    高斯消元求秩,难在构造方程. ; ; i < equ; i++)     {         ; j < var + ; j++)         {             cout & ...