stm32——串口通信代码

Printf 支持

加入以下代码,支持printf函数,而不需要选择use MicroLIB

#if 1
#pragma import(__use_no_semihosting)             
//标准库需要的支持函数                 
struct __FILE 
{ int handle; 
}; 

FILE __stdout;       
//定义_sys_exit()以避免使用半主机模式    
_sys_exit(int x) 
{ x = x; } 

//重定义fputc函数 
int fputc(int ch, FILE *f)
{      
    while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
    USART1->DR = (u8) ch;      
   return ch;
}
#endif 

#define USART_REC_LEN   200    //定义最大接收字节数 200

u8  USART_RX_BUF[USART_REC_LEN];     //接收缓冲,最大USART_REC_LEN个字节.末字节为换行符

u16 USART_RX_STA;           //接收状态标记

 

USART_RX_STA

bit15

bit14

bit13~0

接收完成标志

接收到0X0D标志

接收到的有效数据个数

程序要求,发送的字符是以回车换行结束(0x0D,0x0A)

 

(资源源于正点原子)

你可能感兴趣的:(stm32)