STM32F030F4的USART通信问题
本帖最后由 swenbalan 于 2019-6-10 11:20 编辑刚刚开始搞st32的芯片,现在意图用STM32F030F4的小板子外接T公司的wifi模块完成数据收发和处理。
工作流程很简单,板子通电后wifi模块会不断发送数据包;板子端收到数据包后通过一系列处理,把处理好的数据包返还给wifi模块。
现在的问题是wifi模块从USART1进不来数据,不晓得是不是代码的配置问题。
网上看了很多配置方法,自认为配置应该没有问题。
我的USART1配置代码如下:
void USART1_Init(uint32_t baud)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStruct;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);//使能GPIOA的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//使能USART的时钟
USART_DeInit(USART1);
/* USART1的端口配置 */
GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_1);//配置PA9成第二功能引脚 TX
GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_1);//配置PA10成第二功能引脚RX
/*
*USART1_TX -> PA9 , USART1_RX -> PA10
*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* USART1的基本配置 */
USART_InitStructure.USART_BaudRate = baud; //波特率
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(USART1, &USART_InitStructure);
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); //使能接收中断
USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
USART_ClearFlag(USART1,USART_FLAG_TC);
USART_Cmd(USART1, ENABLE); //使能USART1
/* USART1的NVIC中断配置 */
NVIC_InitStruct.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPriority = 0x02;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStruct);
}
跑起来后第一次进到中断USART1_IRQHandler时,recieve回来的RDR是0.USART的数据截图如下(内存地址也是正确的):
WIFI模块已证实没有问题,用另外一块stm32F1的板子已经成功通信。硬件连接照说也没有问题,都是很简单的连接,万用表也测过。
大虾们有什么建议没?
怎么审查这么久,别人的都通过了? 先用串口 跟 usart1 溝通看看 , 看能不能通 ?
接著看 baudRate 跟 wifi module 是否依樣 ?
應該可以下簡單 AT cmd , 看有沒有回應 ?
:o jeffhe1 发表于 2019-6-10 18:08
先用串口 跟 usart1 溝通看看 , 看能不能通 ?
接著看 baudRate 跟 wifi module 是否依樣 ?
應該可以下簡單 ...
波特率等的参数设置没有问题的。
我拿TTL工具试试,anyway,谢谢你。 请问一下,怎么解决的,我也碰到了类似问题
页:
[1]