历史上的今天
今天是:2024年10月25日(星期五)
2019年10月25日 | STM32 单片机之 串口重映射(USART Remap)
2019-10-25 来源:51hei
大家好,从今天开始.本人将自己在工作中遇到的问题 和学习体会 跟大家一起分享并探讨.下面跟大家说一下STM32单片机的端口重映射,因为是以自己为实例.这里是以USART1的重映射为例..
因为我要一个TFT_LCD屏的主控板,考虑到FSMC 我选用了STM32F103VCT6 型号的CPU,一不小心串口接到USART1上了.因为在调程序时才发现错了,没得办法,只能通过端口重映射来解决.但是以前没用过端口重映射,只闻其名,未用其身,所以..呵呵 ...只能从头去看了.
STM32上有很多I/O口,也有很多的内置外设想I2C,ADC,ISP,USART等 ,为了节省引出管脚,这些内置外设基本上是与I/O口共用管脚的,也就是I/O管脚的复用功能。但是STM32还有一特别之处就是:很多复用内置的外设的I/O引脚可以通过重映射功能,从不同的I/O管脚引出,即复用功能的引脚是可通过程序改变的.读到这里相信大家都应该了解了端口重映射的一些概念了.原理上的东西不细说了,大家可以看手册或者网上查,这方面的资料还是很多的.下面说说我的调试经历.
上面说过,我用的CPU是STM32F103VCT6 ,说到这儿跟大家提一个小插曲.当时在老板让我换方案也就是CPU时,只说用VC的CPU,让我把要买的CPU告诉负责买器件的人,由于我是第一次做,所以傻乎乎的写了张纸给了对方.内容是"STM32F103VC 10PCS"对方看了一眼就给我退了回来并加一句"型号不对,没写全".我没明白,便也不好继续问白痴问题,所以跑网上查,原来光这个CPU就不止一种.我们选用的是T6也就是LQFP封装的 工作环境为-40C -- 80C.所以说大家以后小心点儿 ..言规正传.不知道是什么原因 PCB制图时把串口接到USART1上了,当时也没在意,等我把USART测试程序写好烧进去硬件仿真时,串口给的是乱码,我当时就觉得奇怪.把程序检查了好几遍就是查不出问题来,以为是硬件有问题,但突然想到了STM有复用功能,心想会不会是这里有鬼?于是找来datasheet 一看 ,真相大白

三个红框交汇处.STM32F103VCT6 这个CPU的USART1接的是PB6/PB7 但是上电初始化后 默认功能并非是USART1.所以想要用串口功能 .必须用端口重映射..
大家知道,STM32的单片机每个功能模块有自己的时钟系统,所以要想要调用STM32单片机的功能模块时 必须先配置对应时钟,然后才能去操作相应的功能模块.端口重映射也一样.如图示:

重映射步骤为:
1.打开重映射时钟和USART重映射后的I/O口引脚时钟,
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);
2.I/O口重映射开启.
GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);
3.配制重映射引脚, 这里只需配置重映射后的I/O,原来的不需要去配置.
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB, &GPIO_InitStructure);
只需要这三步,串口就可以正常使用了,简单吧? 但是我纠结了大半个小时才搞定的,好多事情都是说起来容易做起来难的,希望我以后多多进步.不要眼高手低,嗯 我正朝这个方向前进.
史海拾趣
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 Broadcom公司单片数字电视解决方案BCM3560 Broadcom公司的单片高集成度电视解决方案BCM3560,使消费类电子产品制造商能开发出支持模拟,高清(HD)和标准清晰(SD)以及数字有线电视产品,具有出 ...… 查看全部问答> |
|
大家在做项目的时候难免都会使用到各类的传感器,像红外,超声波,加速度传感器,倾角传感器,磁传感器(指南针),红外传感器,电流传感器,CO2气体传感器,有毒气体传感器,烟感传感器。。。。。。。。。。。。。。。你在做设计时都有过哪些传感 ...… 查看全部问答> |
|
DTD110系列工业无线RTU采用最先进的电子和无线通信技术,能为众多的工业与应用提供高性能、中等距离和可靠数据传输的低成本解决方案。DTD110系列无线PLC有4路开关量的传输,4路模拟量的传输,距离100米~3000米均可。即可以实现点对点通信, ...… 查看全部问答> |
|
大家好,我在bl.config.inc中发现有这么几句--#line 26 \"..\\\\..\\\\..\\\\boot_loader\\\\bl_config.c\",不知道什么意思,尤其是那个26不知道代表什么意思(我只知道inc文件是汇编语言的包含文件),希望高手指点,谢谢。… 查看全部问答> |
|
一.订购9月5号下的订单,好像是19号左右发的货,25号实际上就到我这个地区县城了,但是本地区联邦快递代理一般是不送到乡镇的,要去取,但是包裹单上也没有电话号码联系我。联邦快递说又向发货方要电话号码,告诉我去取。好像是9月29号自己去取到 ...… 查看全部问答> |




