首页 > 代码库 > stm32 之引脚和各功能模块间关系
stm32 之引脚和各功能模块间关系
在调试中断问题时发现一个问题,在不同中断号下,我想修改中断处理函数的入口,即串口一的中断处理函数我想改为用串口二的中断处理函数是否有问题。答案是肯定有问题,但是为何有问题,是啥会导致这样的问题产生?下面从就来探讨下这个问题:
1、我用哪个串口是根据啥来判断的,肯定是硬件的管教啊,即我用的是串口一,我就要对我用到的硬件进行设置,即对我的RX和TX用到的引脚进行设置。
//RX引脚设置
GPIO_PinAFConfig(DEBUG_USART_RX_GPIO_PORT,DEBUG_USART_RX_SOURCE, DEBUG_USART_RX_AF);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Pin = DEBUG_USART_RX_PIN;
GPIO_Init(DEBUG_USART_RX_GPIO_PORT, &GPIO_InitStructure);
//TX引脚设置,若有复用则要设置复用的参数
GPIO_PinAFConfig(DEBUG_USART_TX_GPIO_PORT,DEBUG_USART_TX_SOURCE,DEBUG_USART_TX_AF);
GPIO_InitStructure.GPIO_Pin = DEBUG_USART_TX_PIN ;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(DEBUG_USART_TX_GPIO_PORT, &GPIO_InitStructure);
即通过这样的方式在硬件上确定了硬件的方式是只能用串口1.
如下的是串口功能上需要的波特率等相关的操作。
USART_InitStructure.USART_BaudRate = DEBUG_USART_BAUDRATE;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
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(DEBUG_USART, &USART_InitStructure);
这些是功能上需要的。
stm32 之引脚和各功能模块间关系