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