stm32的TIM2的端口使用组合有下面四种:
1.当不重映射时,默认TIM2四个的IO口是PA0、PA1、PA2、PA3
2.要使用PA15、PB3、PA2、PA3的端口组合,要调用下面的语句进行部分重映射:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //重映射必须要开AFIO时钟
GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE);
3.要使用PA0、PA1、PB10、PB11的端口组合,要调用下面的语句进行部分重映射:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //重映射必须要开AFIO时钟
GPIO_PinRemapConfig(GPIO_PartialRemap2_TIM2, ENABLE);
4.要使用PA15、PB3、PB10、PB11的端口组合,要调用下面的语句进行完全重映射:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //重映射必须要开AFIO时钟
GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);
同时还要禁用JTAG功能,PA15、PB3、PB10、PB11才会正常输出。
完全映射端口配置函数:
static void TIM2_GPIO_Config(void) //CH1-PA15 CH2-PB3 CH3-PB10 CH4-PB11 重映射
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); //禁止JTAG功能,把PB3,PB4作为普通IO口使用
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_10 | GPIO_Pin_11;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
关键字:STM32 TIM2 重映射
引用地址:
STM32 TIM2重映射
推荐阅读最新更新时间:2024-03-16 16:05
STM32时钟配置及相关问题
Ⅰ、写在前面 最近有很多朋友问: 1.我的USART串口打印出来的数据是乱码? 2.我的TIM定时器延时或定时不准确? 常见可能原因: 1.晶振问题:外部晶振不起振、或频率与配置不匹配。 2.软件问题:分频、倍频、时钟源选择等。 总结来说,主要还在于软件的问题。因为即使没有外部晶振,也可以使用内部晶振。 其实,软件的问题是容易得到解决的,只要你了解了STM32时钟配置里面具体内容就知道了。 关于本文的详细内容请看下面章节 Ⅱ、本文要点 要了解时钟的配置,就需要知道它在哪里配置,也就是还需要了解软件执行的流程。 1.软件流程 说软件流程是让大家知道系统时钟配置的位置。不管是使用寄存器开发,还是使用库(标准库、
[单片机]
STM32开发笔记84: SX1268驱动程序设计(SPI总线)
单片机型号:STM32L053R8T6 本系列开发日志,将详述SX1268驱动程序的整个设计过程,本篇介绍SPI总线驱动程序。 一、数据手册 1、关键点: 全双工SPI CPOL=0,CPHA=0 从器件 写操作:地址字节+数据字节 读操作:直接发送地址字节,就可返回一个数据字节 NSS在整个帧传输过程保持低电平 MISO在NSS为高时为高阻态 SCK最大时钟16M 2、几个时序图,t10是指从睡眠状态唤醒,NSS下降沿到SCK上升沿的时间,数据手册表明最短时间为100us。 3、芯片离开sleep模式的方法 可以通过NSS的下降沿使得芯片从sleep模式唤醒。下降沿发生后,芯片内部的稳压器都将打开。芯片
[单片机]
基于STM32的Mifare IC卡读写卡器设计
引言 Mifare类型的非接触式智能IC卡作为符合14443A标准的IC卡,广泛应用在电子钱包、各类场所的门禁系统中。MFRC522作为支持该标准的射频读写卡芯片,拥有多种通讯接口(例如UART、SPI、I2C),可以通过单片机方便地读写MFRC522射频芯片内部的寄存器,配合天线对Mifare IC卡片进行读写。 本文设计的读写卡器以STM32F103C8T6为主控芯片,通过SPI通讯方式,选用支持14443A协议的频率为13.56MHz的读卡芯片MFRC522与Mifare卡通讯,并利用双线并绕的方式设计PCB天线,可大幅提高读写卡器的天线信号强度和生产成品率。配合上位机软件可以便捷地对Mifare IC卡片进行读写以
[单片机]
STM32 DAC的配置与使用
STM32 的 DAC 模块(数字/模拟转换模块)是 12 位数字输入,电压输出型的DAC。DAC 可以配置为 8 位或 12 位模式,也可以与 DMA 控制器配合使用。DAC工作在 12 位模式时,数据可以设置成左对齐或右对齐。DAC 模块有 2 个输出通道,每个通道都有单独的转换器。在双DAC 模式下,2 个通道可以独立地进行转换,也可以同时进行转换并同步地更新 2 个通道的输出。DAC 可以通过引脚输入参考电压 VREF+以获得更精确的转换结果。 STM32 的 DAC 模块主要特点有: ① 2 个 DAC 转换器:每个转换器对应 1 个输出通道 ② 8 位或者 12 位单调输出 ③ 12 位模式下数据左对齐
[单片机]
STM32学习之:定时器时间计算
假设 系统时钟是72Mhz,TIM1 是由PCLK2 (72MHz)得到,TIM2-7是由 PCLK1 得到 关键是设定 时钟预分频数,自动重装载寄存器周期的值 /*每1秒发生一次更新事件(进入中断服务程序)。RCC_Configuration()的SystemInit()的 RCC- CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2表明TIM3CLK为72MHz。因此,每次进入中 断服务程序间隔时间为 时间=1/频率×次数 ((1+TIM_Prescaler )/72M)*(1+TIM_Period )=((1+7199)/72M)*(1+9999)=1秒 */ 定时器的基本设置 1、 TIM_
[单片机]
STM32安全固件更新的设计与实现
STM32 提供了安全固件更新的参考设计。为了理解STM32 安全固件更新,我们可以先去看一看普通的固件更新式如何设计,包括一般流程、端到端之间的传输以及为了支持传输的数据结构,在MCU 中的存储以及支持存储的数据结构。在对固件更新的一般原理有了基本认知后,我们看下安全固件更新需要额外引入哪些改变,以及目前STM32 如何在安全固件更新里实现这些额外的需求。一定要谨记,STM32 安全固件更新离不开STM32 安全启动这个平台安全做基础。 固件更新的总体设计 固件更新的流程 一般情况下,固件更新由近距离两方参与: ◎ 设备端:固件的接受方STM32 MCU ◎ 服务器:固件的提供方比如PC 例如:开发人员可以用
[单片机]
STM32学习笔记(十) CAN通讯测试(环回模式)
1.CAN通讯的理解 想学习CAN通讯,那么要对通讯协议有一定的认知。通讯协议是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传输速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。 CAN通讯全称控制器局域网通讯,是用来在局域网中高效传输,处理信息的一种通讯方式。它采用数据块编码的方式,数据块根据帧类型的不同有四种格式,可使不同的节点接收到相同的数据,然后再根据各节点内CAN配置选择处理还是丢弃该信息(这与TCP/IP协议栈的链路层的MAC地址过滤很相似,是可以互通理解的),CAN的位流是按照非归零(NRZ)码方式编码,一个完整的位电平有显性和隐性两种方式。显性和隐性
[单片机]
STM32使用虚拟示波器
在调试过程中.,经常会有需要看到数据实时变化的情况,这时候便需要用到虚拟示波器。如:制作平衡车时,需要了解拟合角度跟随加速度计和陀螺仪的动态变化情况;做电机PWM调速时需要了解速度的变化曲线等。 对于虚拟示波器的选择,由于之前参加过飞思卡尔,用过是山外的多功能调试助手中的虚拟示波器,感觉还不错。 现在想用stm32制作一个平衡车,需要用到虚拟示波器,现在把使用方法分享出来,给那些有需要的人。 首先是通信协议:(下面是虚拟示波器部分的通信协议) 虚拟示波器采用串口通信的方式和下位机通信。因此首先要配置好串口(这里就不做介绍了),接下来便需要实现发送函数。 ///发送一个字节的数据 void usart3_send_c
[单片机]