USART1_Init(115200); //串口初始化(参数是波特率)
/* 发送方法1 */
USART_SendData(USART1 , 0x55); //发送单个数值
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET); //检查发送中断标志位
/* 发送方法2 */
printf("STM32 %d %d ",a,b); //纯字符串和变量发送数据到串口,a符号变量
/* 发送方法3 */
USART1_printf("STM32 %d %d ",a,b);//自己写了一个函数,用到多个串口可用
接受方法1 不使能串口中断
USART1_Init(115200); //串口初始化(参数是波特率)
while(1){
//查询方式接收
if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE) != RESET){ //查询串口待处理标志位
a =USART_ReceiveData(USART1);//读取接收到的数据
printf("%c",a); //把收到的数据发送回电脑
}
}
方法2 usart.c文件 使能串口中断
void USART1_IRQHandler(void){ //串口1中断服务程序(固定的函数名不能修改)
u8 a;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET){ //接收中断(接收到的数据必须是0x0d 0x0a结尾)
a =USART_ReceiveData(USART1);//读取接收到的数据
printf("%c",a); //把收到的数据发送回电脑
}