以STM8S105K4T6C为例,实现PB0管脚复用成TIM1_CH1N

(1)STM8S复用功能(芯片引脚加"[ ]"的功能):通过配置flash中的选项字节来实现

除了ROP(读出保护)字节,每个选项字节必须被保存两次,一个通常的格式(OPTx)和一个用来备份的互补格式(NOPTx)

参见STM8S105xx数据手册(如下图),可知备选功能重映射选项5(AFR5)负责管理PB0端口的重映射功能,将其设置为1即实现PB0重映射为TIM1_CH1N

相关代码:

void Flash_Init()
        {
                 FLASH_DeInit();                       //恢复FLASH相关寄存器到默认值
                 FLASH_Unlock(FLASH_MEMTYPE_DATA);     //解锁数据EEPROM
                 FLASH_ProgramOptionByte(0x4803, 0x20); //选项字节  打开PB0的复用功能
                 FLASH_ProgramOptionByte(0x4804, 0xDF);
         }

(2)TIM1_CH1N是TIM1_CH1的互补输出比较

TIM1_CH1N是TIM1_CH1的反相,可用于TIM1的同步PWM模式

当只选择TIM1_CH1N输出PWM时,需要Disable输出比较,Enable互补输出比较

相关代码:

void Time1_Init()
        {
                   CLK->CKDIVR=0x00;
                   TIM1_TimeBaseInit(1599,TIM1_COUNTERMODE_UP,5000,0); //分频1600,向上计数,TIM1_ARR=20000,重复计数器为0
                  /*OC1初始化:PWM1模式
                                     输出不使能
                             互补输出使能
                             CCR1=8000,占空比为50%
                             输出有效极性为高(无作用
                             互补输出有效极性为高 
                             空闲时输出高(无作用)
                             空闲时互补输出高 
                      */
                     TIM1_OC1Init(TIM1_OCMODE_PWM1, 
                                      TIM1_OUTPUTSTATE_DISABLE, 
                                      TIM1_OUTPUTNSTATE_ENABLE, 
                              5000, 
                              TIM1_OCPOLARITY_HIGH, 
                              TIM1_OCNPOLARITY_HIGH, 
                              TIM1_OCIDLESTATE_SET, 
                              TIM1_OCNIDLESTATE_SET);
     
                      TIM1_OC1PreloadConfig(ENABLE);
                      TIM1_CtrlPWMOutputs(ENABLE); //PWM输出使能
                      TIM1_Cmd(ENABLE); //定时器开始计数 
             }

选项字节的配置一般有两种方式:

(1)使用STlink修改选项字节

打开STVP进行相关设置,可参见

https://wenku.baidu.com/view/205181b2d0d233d4b14e69fa.html

点击打开链接

(2)通过程序修改选项字节

实现程序擦Option Bytes时,不能运行程序,否则会出现错误

一般不建议通过程序修改选项字节,容易出错

STM8S105系列单片机管脚复用配置(选项字节的配置)相关推荐

  1. RJM8L151额温枪方案应用超低功耗8位高性能8051内核系列单片机

    RJM8L151是一款资源丰富的8位高性能的8051内核系列单片机.芯片内置256字节内部数据存储器,2-8K字节SRAM,16-64K字节的可编程FLASH.具备快速中断响应,高效低功耗设计,多种休 ...

  2. OpenCV配置选项参考

    OpenCV配置选项参考 OpenCV配置选项参考 简介 常规选项 使用额外的模块进行构建 调试版本 静态构建 生成pkg-config信息 构建测试,样本和应用程序 构建有限的模块集 下载的依赖项 ...

  3. opencv——opencv配置选项详解

    一.介绍 1.OpenCV (Open Source Computer Vision Library) is released under a BSD license and hence it's f ...

  4. 小程序 | 小程序中常用的事件 + 事件对象的属性列表 +小程序事件传参 + 小程序全局配置 + 小程序页面配置 + 小程序发起网络数据请求

    文章目录 一.WXML 模板语法 数据绑定 事件绑定 ⭐小程序中常用的事件 ⭐事件对象的属性列表 target 和 currentTarget 的区别 bindtap 的语法格式 在事件处理函数中为 ...

  5. GD32系列单片机EXTI外部中断配置

    文章目录 前言 一.EXTI-外部中断 二.程序说明 1.主函数 2.中断函数 总结 前言 学习嵌入式的时候不可避免会接触到中断这个概念,我们平时接触也是最多的,在刚开始学习stm32单片机的时候,听 ...

  6. d06调试详细说明_PIC系列单片机配置字详细介绍(长期实践总结的压箱底资料)

    (注:本文档主要根据PIC16F193X数据手册编写,对于其他型号的单片机,其配置字可能略有不同,此外本文部分参考了PIC18F78K22数据手册,因而部分注释了两个系列单片机的区别) 1.FCMEN ...

  7. 阿里云IOT-C-SDK系列(4)SDK配置选项理解

    阿里云IOT-C-SDK系列(1)概述:移植流程.程序框架.代码目录 阿里云IOT-C-SDK系列(2)快速体验:移植+示例C代码 阿里云IOT-C-SDK系列(3)快速体验:不使用SDK自带编译系统 ...

  8. dsPIC33CK 系列单片机 CANFD配置注意事项

    1.配置 CANFD 模块的时候,需要使能 CANFD 收发器,否则进入 config 后,无法切换为 Normal 模式. 2.dsPIC33CK 系列单片机的指令周期与时钟周期的关系是1:2,也就 ...

  9. 全志A40平台管脚复用配置

    一 资源分配 1 实际项目需要使用I2C接口的OLED,由于OLED有RST复位线,A0命令和地址线,CS片选线,背光控制线BLK.控制线选定T19_UART2_RTS - RST T23_UART2 ...

最新文章

  1. “.Net 社区虚拟大会”(dotnetConf) 2016 Day 3 Keynote: Scott Hanselman
  2. 16s扩增子分析注意事项和经验总结Tips
  3. npm切换到淘宝镜像
  4. centos中如何找出系统中 load 高时处于运行队列的进程
  5. python支持的编程范式有_【Python学习手册】chapter1 前面
  6. prime算法-最小生成树
  7. MySQL学习笔记2:数据库的基本操作
  8. 海康,大华 RTSP取流URL格式
  9. 基于模糊聚类的图像分割
  10. 51单片机8位数码管时钟c语言,51单片机8位数码管电子时钟(完结)
  11. 20年研发管理经验谈(二)
  12. 利用PPt画卷积神经网络
  13. 资深车主才会告诉你的那些事,看完立省三万二
  14. correl函数相关系数大小意义_用Correl函数返回相关系数,以确定属性关系
  15. 树莓派3B入门开发之(一)--简介
  16. 交互式多模型 IMM的原理
  17. java全栈系列之JavaSE--数组的使用025
  18. Maven工程报错:No goals have been specified for this build. You must specify a valid lifecycle phase or a
  19. UVa 11437 (梅涅劳斯定理) Triangle Fun
  20. 【C语言】用二分查找法在有序数组中查找具体的某个数

热门文章

  1. 如何把复杂单体应用快速迁移到微服务
  2. JAVA 注解的基本原理
  3. Redis集群:sharding策略
  4. java openssl 开发_java openssl
  5. 计算机主机安装系统安装系统,系统重装
  6. Java快速生成20亿数字_关于内存:Java-打印10亿到20亿
  7. 运维工程师 | 交换机堆叠
  8. 数据机房气流组织的常见类型及应用
  9. 上海银行数据中心迎来智能机器“巡检员”
  10. 成功解决Future Warning: The sklearn.neighbors.dist_metrics module is deprecated in version 0.22 and wil