本帖最后由 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的板子已经成功通信。硬件连接照说也没有问题,都是很简单的连接,万用表也测过。
大虾们有什么建议没?
|
接著看 baudRate 跟 wifi module 是否依樣 ?
應該可以下簡單 AT cmd , 看有沒有回應 ?
评分
查看全部评分
波特率等的参数设置没有问题的。
我拿TTL工具试试,anyway,谢谢你。