stm32f407给NB模块写at指令

2019-07-20 06:51发布

利用串口向nb模块写at指令,stm32开发板用串口线usart3和NB模块相连,不知道为什么总是得到不回复,谁做过stm32和nb模块调试,以下是我的代码:
uint8_t* aes="AT+CIMI ";//at指令
    uart_sendat(USART3,aes);//在usart3上发送指令给nb模块
if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
{
     uart3_buffer[rx_count++]==USART_ReceiveData(USART3);//接收NB模块返回的值
      uart_sendat(USART1,uart3_buffer);//利用usart1串口在串口工具中显示
  
}
void uart_sendat(USART_TypeDef* USARTx,uint8_t* cp)
{
    while((*cp)!='')
    {
        Usart_Send_isr(USARTx,*cp);
        cp++;
    }
}
void Usart_Send_isr(USART_TypeDef* USARTx,uint8_t ch)
{
     while(USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET );
   USART_SendData(USARTx, (uint8_t)ch);
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
太祖
2019-07-21 03:20
ssssssssssss 发表于 2018-8-2 16:32
在中断里接收吧,仿真或者串口打印都行

在中断里接收usart3的数据,然后用usart1发给pc的串口显示,但是每次显示的都不对,是不是接收有问题?以下事我代码:
        USART_ClearITPendingBit(USART3, USART_IT_RXNE);
                                USART3_RX_BUF[USART3_RX_STA++]=USART_ReceiveData(USART3);        //usart3½ÓÊÕÊý¾Ý£»
               
                                USART3_RX_STA=0;
                                //if(USART3_RX_BUF[USART3_RX_STA-2]==0x0d&&USART3_RX_BUF[USART3_RX_STA-1]==0x0a)
                                //        aes=USART_ReceiveData(USART3);
                                uarttt_sendat(USART3_RX_BUF);
void uarttt_sendat(uint8_t* cp)
{
    while((*cp)!='')
    {
        Usart3_Send_isr(*cp);
        cp++;
    }

}
void Usart3_Send_isr(uint8_t ch){
     USART_SendData(USART1, (uint8_t)ch);
     while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET );

}

一周热门 更多>