STM32F103 USART1串口重映射功能的实现

2023-05-16

STM32F103 USART1串口重映射实现方法代码

转载请注明出处:https://blog.csdn.net/qq_43400642/article/details/84838405
我们知道,F103的usart1串口是PA8 PA9的复用功能,我们在使用的时候直接配置这两个引脚,配置复用即可,但有时,在实际工作中,也会采用串口的重映射功能。在这里插入图片描述
由图可知,usart1是PB6 PB7的重定义功能,也就是重映射功能,话不多说,直接上代码。我使用的是103C8T7,请知悉。

static void Gpio_Config1(void){
	GPIO_InitTypeDef GPIO_InitStructure;
	
	/* TX PB6 */
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitStructure);
	
	/*  RX PB7 */
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
	GPIO_Init(GPIOB,&GPIO_InitStructure);
}

static void Usart_Config1(u32 baudrate){
	USART_InitTypeDef USART_InitStructure;

	USART_InitStructure.USART_BaudRate = baudrate;
	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
	USART_InitStructure.USART_Parity = USART_Parity_No;
	USART_InitStructure.USART_StopBits = USART_StopBits_1;
	USART_InitStructure.USART_WordLength = USART_WordLength_8b;
	
	USART_Init(USART_MCU_LCD,&USART_InitStructure);
	
	//USART_ITConfig(USART1,USART_IT_TXE,ENABLE);
	USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
	USART_Cmd(USART1,ENABLE);
	USART_ClearFlag(USART1,USART_FLAG_TC);
}


static void Nvic_Config1(void){
	NVIC_InitTypeDef NVIC_InitStructure;
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
	NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
	
	NVIC_Init(&NVIC_InitStructure);
}

void Usart1_Init(u32 baudrate){
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
	GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);//usart1功能重映射
	Gpio_Config1();
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
	
	Usart_Config1(baudrate);
	Nvic_Config1();
}

记住顺序,先使能GPIOB和AFIO,再调用GPIO_PinRemapConfig函数,然后再初始化gpio引脚,再使能USART1,再配置串口,需要中断的话再配置中断,切记不要搞错。其它系列芯片的顺序也是一样的,但是映射的函数是不一样的,请查询后使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32F103 USART1串口重映射功能的实现 的相关文章

  • STM32F103 配置Systick

    Systick系统滴答时钟 Systick h ifndef SYSTICK H define SYSTICK H include 34 stm32f10x h 34 void SysTick Init void void Delay ms
  • 基于STM32F103入门1——点亮LED灯

    今天学习了STM32固件库点灯程序 点灯也可以玩过很多好玩的东西 xff0c 在这里做一下总结 STM32点灯程序合集 1 xff1a 新建固件库工程文件1 1找到一个固件库模板1 2 xff1a 打开KEIL5新建工程1 3 xff1a
  • 【stm32f103】认识GPIO

    认识GPIO 什么是GPIOGPIO基本结构保护二极管输出模式推挽输出开漏输出 输出数据寄存器 xff08 参考手册8 2 xff09 GPIOx ODRGPIOx BSRR 输入模式 GPIO工作模式输入模式 xff08 模拟 浮空 上拉
  • stm32f103-gpio源码理解

    提要 xff1a 参照野火的stm32f103开发指南 xff0c 对标准库的构造进行理解 xff1a xff08 1 xff09 使用结构体 xff0c 使用宏 xff0c 使用枚举 xff08 2 xff09 因为参数是可变的 xff0
  • keil5 STM32F103 下载程序出错Flash Download failed - "Cortex-M3"

    1 背景 STM32F103单片机无法下载程序 最近在使用STM32单片机做项目 先是使用的H743单片机 xff0c 现在需要使用到F103单片机 H7烧写程序正常 xff0c 但是无法对F103烧写程序 错误为 xff1a Error
  • stm32f103最小系统板详细介绍

    一 什么是单片机最小系统 常见的单片机最小系统为单片机能独立运行程序及控制外围电路的最简单电路 xff0c 主要由单片机 晶振电路 复位电路三部分构成 Stm32f103c8t6也不例外 xff0c 构成最小的运行电路也需要以上三部分 St
  • STM32F103系列NVIC中断优先级分组讲解

    一 简介 CM3内核支持256个中断 xff0c 16个内核中断 xff0c 240个外部中断 xff0c 并且拥有256级的可编程中断设置 但是STM32只用到了CM3内核的一部分 xff0c STM32有84个中断 xff0c 包括16
  • stm32f103——中断——UART中断服务函数

    在程序中 xff0c CPU对外界突发事件进行处理的方式又两种 xff1a 1 轮询系统 xff1a xff08 在main中 xff0c 使用while循环 xff0c 进行循环判断外界事物是否发生 xff09 while xff08 1
  • STM32F103 CAN总线配置总结

    stm32的can总线的配置如下 xff1a CAN InitStructure CAN TTCM 61 DISABLE 禁止时间触发通信模式 CAN InitStructure CAN ABOM 61 DISABLE CAN InitSt
  • STM32——USART1重映射

    前言 为了使不同器件封装的外设 IO 功能数量达到最优 xff0c 可以把一些复用功能重新映射到其他一些引脚上 STM32 中有很多内置外设的输入输出引脚都具有重映射 remap 的功能 我们知道每个内置外设都有若干个输入输出引脚 xff0
  • si4438使用stm32f103配置调试成功!

    刚拿到si4438时候在网上找了一大波资源 xff0c 发现能使用的并没有多少 xff0c 于是自己配置一发 经过不懈努力配置成功 xff0c 现在将一些配置过程分享给大家 xff01 源码已上传 尽情下载 xff01 1 首先打开工程文件
  • STM32F103控制PCA9685产生16路PWM波控制SG90舵机

    STM32控制PCA9685产生16路PWM波控制SG90舵机 如果你能点开这篇文章 xff0c 说明你已经知道PCA9685是多么强大 xff0c NXP公司原本做这片芯片是为了提供给LED使用 xff0c 在其官方文档里也能看到所有PW
  • STM32F103 GPIO内部电路图

    GPIO结构图 GPIO工作模式 输入模式 输入浮空 输入上拉 输入下拉 模拟输入 输出模式 开漏输出 开漏复用功能 推挽式输出 推挽式复用功能 输入浮空 输入上拉 输入下拉 模拟输入 开漏输出 开漏复用功能 推挽式输出 推挽式复用功能
  • STM32 系统(SysTick)定时器实验

    目录 SysTick 简介 SysTick 寄存器介绍 SysTick 定时时间计算 SysTick 定时实验 实验结果 SysTick 简介 SysTick 系统定时器是属于 CM3 内核中的一个外设 内嵌在 NVIC 中 系统定时器是一
  • STM32 超声波模块测距

    目录 HC SR04模块 HC SR04超声波测距模块工作原理 HC SR04超声波模块的时序触发图 思路步骤 代码 实验结果 总结 HC SR04模块 HC SR04超声波测距模块工作原理 1 采用IO口TRIG触发测距 给至少10us的
  • 基于STM32的超声波感应垃圾桶

    目录 成果演示 材料 主要代码 总结 成果演示 材料 STM323f103开发板 最小系统均可 超声波模块 HC SR04模块 舵机一个 垃圾桶模型 主要代码 超声波模块 include ultrasonsic h include dela
  • 基于STM32F103 实现按键状态机

    文章目录 开发板 开发环境 前言 按键消抖 按键硬件原理图 软件延时实现思路 实验目的 代码 按键状态 按键信息 按键相关定义 按键底层配置及状态获取 总结 开发板 正点原子STM32F103ZET6战舰 开发环境 stm32cubeMX
  • STM32F103移植FreeRTOS必须搞明白的系列知识---2(FreeRTOS任务优先级)

    STM32F103移植FreeRTOS必须搞明白的系列知识 1 Cortex CM3中断优先级 STM32F103移植FreeRTOS必须搞明白的系列知识 2 FreeRTOS任务优先级 STM32F103移植FreeRTOS必须搞明白的系
  • STM32基本IO的寄存器介绍

    STM32基本IO的寄存器介绍 说明 简介 端口配置低寄存器 32位 数据寄存器 32位 置位 复位寄存器 32位 复位寄存器 16位 锁存寄存器 32位 说明 最近自己在学习STM32 跟着原子哥的STM32教学视频学习 参考的资料有来自
  • 解决keil中 点击setting 程序中断问题

    自己写了一个LED常亮的程序 入门嘛 但是程序在下载后 点击 debug setting 在软件识别J link后 程序是成功的 但是LED不亮了 下面是解决方法 记住把2标记处的对勾去掉就可以了 这个功能是 在你连接完成时自动在Reset

随机推荐

  • 【CMake】CMake 编译选项设置

    CMake CMake 编译选项设置 在CMakeLists txt中可以通过修改CMake内置的环境变量来改变C或C 43 43 的编译选项 编译选项相关的CMake 变量如下 xff1a CMAKE C FLAGS span class
  • 树莓派4b开启vnc和无法连接解决方法

    树莓派4b开启vnc vnc开启 通过ssh连接到树莓派后运行如下命令 打开命令行 xff0c 输入 sudo raspi config xff0c 打开树莓派软件设置工具 选择 3 Interfacing Options 选择 I3 VN
  • Java中this的四种用法

    最近在学习代理模式的时候 xff0c 遇到了一个这样的this用法 xff0c 一下子把我搞懵了 xff0c 后面看了狂神的视频就理解了 xff0c 因此这里再巩固一下java基础 this的用法 xff01 在我使用jdk的动态代理时 x
  • 云服务器 nginx 部署多个Vue项目

    本篇文章不提供如何在服务器上安装nginx以及Vue打包 xff0c 相关内容请参考我另外一篇文章 xff1a 将Vue项目部署到服务器 注 xff1a 我的Vue cli版本为4 5 43 xff0c 如果不是4 43 的版本 xff0c
  • ubuntu修改apt为国内镜像源

    备份旧的源 span class token function sudo span span class token function cp span etc apt sources list etc apt sources list ba
  • 年度最理性 AI 分析文章:预测 AI 未来,大部分人陷入了 7 大误区

    来源 xff1a 36氪 概要 xff1a 错误的预测会导致大家对不会发生的事情感到恐惧 为什么在人工智能和机器人的预测上总有人不断犯错呢 xff1f 想着预测未来 xff0c 却一不小心就陷入了yy 近年来图像识别突破 Waymo无人车上
  • ESP8266-01S与PC通过网络助手的测试的AT指令

    这阵子在学esp8266 43 stm32的知识 xff0c 从小白学起 xff0c 一步一步记录着 工具 xff1a TTL usb xff0c esp8266 01s xff0c 杜邦线 xff0c xcom串口助手 如图 xff1a
  • 远程登录Linux时 mobaxterm出现连接超时

    远程登录Linux时 mobaxterm出现连接超时 问题描述 xff1a 远程登录Linux时 mobaxterm出现连接超时 解决办法 xff1a 第一步 xff1a 打开虚拟机 编辑 虚拟网络编辑器 VMnet8 NAT设置 记住子网
  • g2o的 cmakelists.txt编写问题

    slam 14讲ch6的g2o代码报错 xff1a CMakeFiles span class token operator span g2oCurveFitting span class token punctuation span di
  • apt-get命令详解

    apt 1 2 32ubuntu0 2 amd64 用法 xff1a apt get 选项 命令 apt get 选项 install remove 软件包1 软件包2 apt get 选项 source 软件包1 软件包2 apt get
  • 如何使用 datax 拉取 hive 中的数据到 oracle 中?

    需求 将 hive 中的数据拉取到 oracle 中 xff0c 使用的工具是 datax 步骤 1 先在 hive 中找一张需要拉取的表 xff0c 然后在 oracle 中创建对应的空表 xff0c 等待拉取数据 2 在 datax 的
  • Docker教程(3)——实例1

    Docker教程 xff08 3 xff09 运行一个web应用程序 在后文中将在docker容器中运行一个Python Flask应用运行一个web应用 文章目录 Docker教程 xff08 3 xff09 运行一个web应用程序1 载
  • 平衡车代码阅读,学习mpu6050滤波

    mpu6050 c include 34 MPU6050 h 34 include 34 IOI2C h 34 include 34 usart h 34 作者 xff1a 平衡小车之家 我的淘宝小店 xff1a http shop1144
  • 【慕伏白教程】在Vmware中安装Ubuntu流程

    慕伏白教程 在Vmware中安装Ubuntu流程 一 下载官方镜像二 新建虚拟机1 创建虚拟机2 安装系统镜像2 1 点击 编辑虚拟机设置 2 1 虚拟机设置 三 安装系统1 系统初始化1 1 点击 开启此虚拟机 1 2 选择 Try or
  • 《自动化学报》投稿成长日记

    自动化学报 投稿成长日记
  • openwrt 7621 使能ttyS1

    openwrt版本 15 05 release 1 修改openwrt 15 05 release target linux ramips dts下对应的dts文件 xff0c 取消uart2 uart3配置为gpio功能 将uart2 u
  • 安装ROS过程中的rosdep init 和 rosdep update 命令执行不成功的解决办法

    一 解决 rosdep init 命令执行不成功 xff1a 不成功信息 xff1a RROR cannot download default sources list from https raw githubusercontent co
  • STM32F1 定时器 PWM输入捕获两路

    IO u32 TIM4CH3 CAPTURE UPVAL 61 0 通道3捕获到高电平的时刻 IO u32 TIM4CH3 CAPTURE DOWNVAL 61 0 通道3捕获到低电平的时刻 IO u32 TIM4CH4 CAPTURE U
  • openwrt 使用uci更改ip

    以lan口举例 xff1a 设置lan口ip uci set network lan ipaddr 61 192 168 0 251 提交 uci commit network 重启网络 etc init d network restart
  • STM32F103 USART1串口重映射功能的实现

    STM32F103 USART1串口重映射实现方法代码 转载请注明出处 xff1a https blog csdn net qq 43400642 article details 84838405 我们知道 xff0c F103的usart