由于本論壇禁止直接求程序,禁止伸手黨,所以向大家請教一下大致的實現方法與思路,理清頭緒后我自己來寫程序去實現
( •̩̩̩̩_•̩̩̩̩ ) 16:16:07
1,使用串口USART1,編寫STM32與PC機的串口通信控制程序(只編寫STM32端的程序)。
要求:
(1)首先接收PC機發送的字符串(字符串以‘#’開始,以‘*’結束,長度不超過20),接收完畢后再將該字符串原樣發送回去。
(2)必須以中斷方式實現串口的接收,發送過程的實現方式不做要求。
已知:
(1)初始化函數為USART_init(u16 Baud)已經編寫完畢,可以直接調用,其中參數Baud為波特率。
(2)涉及的庫函數如下:
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);
uint16_t USART_ReceiveData(USART_TypeDef* USARTx);
ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_FLAG);
void USARTx_IRQHandler(void);
其中,參數USARTx的可選值包括:USART1,USART2,USART3等。
參數USART_FLAG的可選值包括:USART_IT_TC,USART_IT_RXNE等。
( •̩̩̩̩_•̩̩̩̩ ) 16:16:26
2,設串口USART1的初始化過程皆已完成,要求編寫與PC機通信的中斷控制程序,實現功能如下:首先接收PC機發送的字符串(字符串以‘#’開始,以‘*’結束),接收完畢后再將該字符串發送回去。
涉及的庫函數如下:
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);
uint16_t USART_ReceiveData(USART_TypeDef* USARTx);
ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_FLAG);
void USARTx_IRQHandler(void);
其中,參數USARTx的可選值包括:USART1,USART2,USART3等。
參數USART_FLAG的可選值包括:USART_IT_TC,USART_IT_RXNE等。
|