当前位置: 首页 > news >正文

网站优化推广怎么做磁力猫torrentkitty官网

网站优化推广怎么做,磁力猫torrentkitty官网,哪些网站建设公司好,陕西网站维护目录 需求IO口的复用和重映射使用复用复用加重映射 总结参考资料 需求 一开始使用stm32c8t6,想实现pwm输出,但是原电路固定在芯片的引脚PB10和PB11上,查看了下引脚的功能,需要使用到复用功能。让改引脚作为定时器PWM的输出IO口。…

目录

    • 需求
    • IO口的复用和重映射
    • 使用
      • 复用
      • 复用加重映射
    • 总结
      • 参考资料

需求

一开始使用stm32c8t6,想实现pwm输出,但是原电路固定在芯片的引脚PB10和PB11上,查看了下引脚的功能,需要使用到复用功能。让改引脚作为定时器PWM的输出IO口。

IO口的复用和重映射

IO口使用可分为两种情况:
1.正常功能。正常使用,开启GPIO时钟使用。
2.复用功能。使用复用功能,将改IO引脚作为另外的ADC、PWM定时器等引脚使用。

复用功能有可以分为三种情况:没有重映射、部分重映射、完全重映射

复用功能的使用的目的是为了在有限的引脚的情况下可以充分的使用各种外设,定时器、串口等等。
总之就是在复用的情况下,原来的引脚可以作为另一种功能的引脚使用。
重映射就是在复用情况下, 可以把一些复用功能重新映射到其他一些引脚上,也就是充当另一个外设功能引脚使用。当然,重映射也不是随便映射的,是芯片设计好的时候就已经固定了,stm32的重映射可以查看《《STM32 中文参考手册》的P116页,8.3通用和复用功能。

而复用重映射的目的都是为了能充分利用有限的引脚资源去实现更多的外设功能。

通过初步查看数据手册,发现PB10和PB11两个引脚如下图所示,可以发现,默认复用的时候可以作为IIC或者usart3使用,而在重定义功能(完全重映射,说法不同)的情况下, 可以作为定时器2的通道3和通道4使用。

复用

使用

复用

首先介绍复用功能的使用,复用功能使用比较简单,开启复用时钟即可。

在这里插入图片描述

查看手册可以看到复用开启,没有开启重映像的时候,就是串口3.

//开启io口时钟和定时器时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
//USART1_TX PB10 复用推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //PB10
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_Init(GPIOB, &GPIO_InitStructure);
//USART1_RX PB11 浮空输入
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;//PB11
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
GPIO_Init(GPIOB, &GPIO_InitStructure);

这样PB10和PB11就可以当串口3进行正常使用了。

复用加重映射

由于我需要使用定时器2通道3实现PWM输出。所以需要用到重映射。
在这里插入图片描述

由上图可以看到,定时器2通道3的部分重映射和完全重映射都是同一个引脚也就是实现的效果是一样的。
对于定时器2通道2部分重映射和完全重映射就是不同的引脚了。
所谓部分重映射就是部分管脚和默认的是一样的,而部分管脚是重新映射到其他管脚。而完全重
映射就是所有管脚都重新映射到其他管脚。

首先复用肯定需要使能IO口和复用时钟。

//开启io口时钟和定时器2时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
//开启复用时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
//开启重映射
//void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);
GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);
//对PB10进行初始化
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

在这里插入图片描述

其中核心就是重映射函数GPIO_PinRemapConfig,第一个参数为重映射引脚选择,另一个为使能参数。
可以在文件“ stm32f10x_gpio.h”中看到定义的宏定义中关于定时器2的三个重映射定义,分别和芯片手册中提到的三种重映射相对应,对于定时器2通道2,分别是部分重映射1–GPIO_PartialRemap1_TIM2,也就是重映射到PB3,部分重映射2–GPIO_PartialRemap2_TIM2,重映射到PA1,完全重映射–GPIO_FullRemap_TIM2,重映射到PB3。
而对于通道3,部分重映射2和完全重映射都是相同的,也就是这两个效果会相同(当然在不考虑其他引脚的影响下)。这样我们就将定时器2通道3引脚映射到PB10下,但是在实际使用的时候,发现失败了,没有达到想要的效果,目前来看的原因是我用的C8T6是36脚的封装,而手册重映射下面提到,重映像不适用于 36 脚的封装

所以在使用的过程中一定要参考芯片手册,同时也要注意看注意事项,小容量小芯片可能大多数重映射功能都没法使用。

总结

复用和重映射的使用其实在库函数开发中就是两个函数的调用,但是需要注意的是需要去查看手册,复用的引脚是对应是哪个IO口,重映射对应的引脚是哪个,查阅好手册,确保芯片有重映射功能,就可以使用了。以上就是全部内容了,欢迎大家在评论区留言。

参考资料

stm32F103芯片手册和参考手册如下:

链接:https://pan.baidu.com/s/1v0S3ntMrII0HZsdbladByg?pwd=z6o1
提取码:z6o1

http://www.tj-hxxt.cn/news/25831.html

相关文章:

  • 学校官网在哪里找手机优化软件哪个好
  • 有没有什么做统计的网站网站的收录情况怎么查
  • 西安品牌网站建设服务商站长工具seo综合查询分析
  • 怎么做网站识图验证码周口网络推广哪家好
  • 发布工程信息的网站有哪些百度网址大全下载
  • 长春网站关键词排名长春seo优化企业网络跃升
  • 专业建设费用怎么花爱站网seo查询
  • vs和sql做购物网站广告门
  • 做阿里网站卖东西赚钱广告推广渠道
  • 免费网站申请哪个模板建站好
  • 网站建设推广方案软文广告是什么意思
  • 网站怎么做防御如何建立网站的步骤
  • axure网站返回顶部按钮怎么做seo外贸推广
  • 湖南企业建网站关键词seo公司推荐
  • 国内四大门户网站合肥优化
  • 网站开发 商城开发公司网站如何制作
  • 做淘客网站用备案吗网页设计与制作期末作品
  • 利用小程序反向做网站广告推广赚钱在哪接
  • 中国效能建设网站武汉seo哪家好
  • javaee可以做网站么网站优化关键词公司
  • 长沙网站建设建响应式网站模板的特点
  • 怎么用源码做网站视频站外推广怎么做
  • 网站分享的功能怎么做的百度推广免费
  • 用什么建设网站搜狗seo优化
  • app下载做任务赚钱网站友情链接举例
  • 微信小程序制作商宁波网站推广优化
  • 宁波网站建设首选品牌公司专业网站建设
  • 基于java的音乐网站开发网站模板建站公司
  • 商城网站建设基础设计网络营销策划怎么写
  • 网站正在建设中模板下载沈阳专业网站seo推广