利用串口向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);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我在main()下send数据,不知道为什么一直没有数据发送,以下是我中断里面的函数:void USART3_IRQHandler(void)
{
//char aes;
uint8_t i;
if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)//ÖжϲúÉú£¬½ÓÊÕµ½Êý¾Ý
{
// while(USART_GetFlagStatus(USART3, USART_FLAG_RXNE) != RESET)
// {
USART_ClearITPendingBit(USART3, USART_IT_RXNE);
USART3_RX_BUF[USART3_RX_STA++]=USART_ReceiveData(USART3); //usart3½ÓÊÕÊý¾Ý£»
for(i=0; i< USART3_RX_STA; i++) TxBuffer1 = USART3_RX_BUF;
TxCounter1=USART3_RX_STA;
USART3_RX_STA=0;
//uarttt_sendat(USART3_RX_BUF);//½ÓÊÕµ½µÄÊý¾ÝÔÚpcµÄ´®¿ÚÖúÊÖÉÏÏÔʾ
// }
// aes=USART_ReceiveData(USART3);
//while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET );
//while (!(USART1->SR & USART_FLAG_TXE));
//if(++USART3_RX_STA>=USART3_MAX_RECV_LEN) USART3_RX_STA=0;
//USART_ClearITPendingBit(USART3, USART_IT_RXNE);
//}
//USART_ClearITPendingBit(USART3, USART_IT_RXNE);
}
if(USART_GetITStatus(USART3, USART_IT_TC) != RESET)
{
//mcui_oncomm_send(3);
USART_ClearITPendingBit(USART3, USART_IT_TC);
}
}
这个是main里的for(i=0;i<TxCounter1;i++)
{
Usart3_Send(TxBuffer1);
}
大神,帮我看看
一周热门 更多>