新手研究STM32,想要实现串口的数据收发。现在串口2已经重映射了,能收到调试助手发过来的数据,但是想将收到的数据发回去,就不行了,调试助手没显示。
找了挺多资料的,还是搞不明白,各位大哥帮忙看下什么原因吧!串口的配置函数: void USART_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
// 串口2配置
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_USART2,ENABLE);
/*
* USART1_TX -> PA9 , USART1_RX -> PA10
*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
USART_InitStructure.USART_BaudRate = 115200;
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(USART2, &USART_InitStructure);
USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
//USART_ITConfig(USART2, USART_IT_TXE, ENABLE);
USART_Cmd(USART2, ENABLE);
USART_ClearITPendingBit(USART2, USART_IT_TC);
} 发送部分的函数: void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)[/mw_shl_code]{[/mw_shl_code] /* Check the parameters */[/mw_shl_code] assert_param(IS_USART_ALL_PERIPH(USARTx));[/mw_shl_code] assert_param(IS_USART_DATA(Data)); [/mw_shl_code] /* Transmit Data */[/mw_shl_code] USARTx->DR = (Data & (uint16_t)0x01FF);[/mw_shl_code]}[/mw_shl_code][/mw_shl_code]void Send_Array(u8 * Array, u16 Len) {
u16 i = 0;
if(Len)
{
for(; i<Len; i++)
{
USART_SendData(USART2, Array);
while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
}
}
}[/mw_shl_code]
[/mw_shl_code]
[/mw_shl_code]
|