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

阿里巴巴做特卖的网站扬州网站推广公司

阿里巴巴做特卖的网站,扬州网站推广公司,武汉公司注册地址可以是住宅吗,网站动图怎么做STM32 端口引脚重映射 文章目录 STM32 端口引脚重映射前言1、查阅芯片数据手册1.1 串口引脚重映射描述 2、代码部分2.1 核心代码部分 3、实验现象4、总结 前言 在写程序时遇到想要的端口功能,而这个引脚又被其它的功能占用了无法删除掉或直接使用,这种情…

STM32 端口引脚重映射


文章目录

  • STM32 端口引脚重映射
  • 前言
  • 1、查阅芯片数据手册
    • 1.1 串口引脚重映射描述
  • 2、代码部分
    • 2.1 核心代码部分
  • 3、实验现象
  • 4、总结


前言

在写程序时遇到想要的端口功能,而这个引脚又被其它的功能占用了无法删除掉或直接使用,这种情况就很尴尬了,因为STM32同一个引脚是不能同时使用两个功能的。那么遇到这种情况就需要考虑该端口分时复用或者端口重映射功能了。

硬件平台使用的是STM32F103ZET6芯片。


1、查阅芯片数据手册

打开对应芯片数据手册,找到 pin outs and pin descriptions 章节。
如下图所示:

在这里插入图片描述

往下拉就可以看到芯片的相关引脚定义了,如下图这个就是我使用的芯片引脚定义,用的是STM32F103ZET6的芯片。

在这里插入图片描述

再往下拉,就可以看到下面这个引脚定义及功能详细表了。

在这里插入图片描述

1.pins这栏是芯片型号,看对应芯片封装就可以,STM32F103ZET6芯片是LQFP144的,所以对应看该列即可。
2.pin name 顾名思义就是引脚的名字,可对应前面的引脚标号。
3.default 是芯片该引脚能支持的功能,复位后的引脚功能。
4.remap 是芯片端口重映射的功能,如果表格是空白的,则说明该引脚不支持重映射其它功能。

1.1 串口引脚重映射描述

在正常一般情况下STM32F1默认串口1的发送和接收引脚是PA9和PA10的。如下图所示:

在这里插入图片描述

由于实验需要验证这个串口1的重映射功能是否可以正常使用,所以使用PB6和PB7两个引脚来重映射串口1功能。如下图所示:

在这里插入图片描述

2、代码部分

由前面数据手册可知PB6和PB7这两个引脚可以用来实现串口1功能,所以程序只需要初始化该两个引脚即可,PA9和PA10就不需要再初始化了。

本实验使用的是标准库的例程,直接使用了正点原子的串口实验进行修改的。只需要使能对应的时钟和把串口引脚对应改下就可以了。

2.1 核心代码部分

1,使能时钟。
2,初始化串口引脚。如下:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOB, ENABLE);	//使能USART1,GPIOB时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);                        //使能复用时钟
GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);                             //使能串口1重映射时钟

示例代码如下:

void uart_init(u32 bound)
{//GPIO端口设置GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOB, ENABLE);	//使能USART1,GPIOB时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);//USART1_TX   GPIOB.6GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //PB.6GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;	//复用推挽输出GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB.6//USART1_RX	  GPIOB.7GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//PB.7GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB.7//Usart1 NVIC 配置NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;		//子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;			//IRQ通道使能NVIC_Init(&NVIC_InitStructure);	//根据指定的参数初始化VIC寄存器//USART 初始化设置USART_InitStructure.USART_BaudRate = bound;//串口波特率USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;	//收发模式USART_Init(USART1, &USART_InitStructure); //初始化串口1USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断USART_Cmd(USART1, ENABLE);                    //使能串口1 
}

需要改的就这个串口初始化函数,其它的代码都不要修改了。

3、实验现象

把开发板TTL电路的TX和RX分别接到PB7和PB6引脚上,或者之间用USB-TTL模块也可以。

打开串口调试助手,选择对应的波特率就可以看到收发的内容了,说明这样设置是正常的。

在这里插入图片描述

注意:实验要勾选发送新行才能正常发送内容。


4、总结

要完成这个功能还是比较简单的,只要懂看明白这个表格就可以了。

同理,其它的外设功能也一样,比如定时器、ADC等等,都是按照这个方法原理来就可以了。

http://www.hrbkazy.com/news/1349.html

相关文章:

  • 项目管理软件系统天津优化网络公司的建议
  • 在哪里可以找到做网站的公司网站推广有哪些方式
  • 一个网站如何赚钱中国站长之家网站
  • 洛阳网百姓呼声谷歌优化教程
  • 营销型集团网站建设提高网站搜索排名
  • 深圳vi设计有哪些鄞州seo整站优化服务
  • 一个人做网站难吗今日足球赛事数据
  • 网站关键字个数建网站软件工具
  • 深圳图派做的网站后台加什么网站优化关键词价格
  • 网站的三大标签网站关键词
  • 网站微信收款二维码怎么做江苏seo哪家好
  • 小程序开发平台哪家比较被大家认可如何提高网站seo排名
  • 网站的百度词条怎么做seo网站优化方案案例
  • wordpress的配置文件windows优化大师收费
  • 好听好记的网站域名不付费免费网站
  • 删除百度收录的网站网页自助建站
  • 唐山 建设工程信息网站外链网盘系统
  • 网站返回首页怎么做的好看沈阳优化推广哪家好
  • dw建设的网站上传2023最新15件重大新闻
  • 宁波网站建设找哪家好青岛网络seo公司
  • 英雄联盟韩国站内优化主要从哪些方面进行
  • wordpress支付配置天津百度seo代理
  • 免费动态网站建设seo免费诊断
  • 婺源做网站描述优化方法
  • 购物网站设计会员管理模块市场调研报告万能模板
  • 建网站流程短视频代运营合作方案
  • 曰本免费一级a做爰视频网站朋友圈推广平台
  • 网站建设?首选百川互动重庆seo推广服务
  • 最优网络做网站怎么样深圳百度网站排名优化
  • 珠海网站建设的公司免费企业网站建设