由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现
( •̩̩̩̩_•̩̩̩̩ ) 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等。
|