使用电子罗盘,串口发送和接受。 关键代码如下: USART_SendData(USART2, c); 开始测距 while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET ); unsigned char c; while(1) { if(USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == SET) { c=USART_ReceiveData(USART2); return c; } }接受测得数据 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; // 发送使能+接收使能 USART_Init(USART2, &USART_InitStructure); USART_ClearFlag(USART2, USART_IT_RXNE); USART_Cmd(USART2, ENABLE); //USART2总开关:开启 使用的是查询模式。 为题是在while(1)里面死循环了。 问什么我USART_GetFlagStatus(USART2, USART_FLAG_RXNE)不是1.确定当发送c的时候有返回值 |
RE:USART串口设置