总结:1 :STM32 接收和发送的数据都是字符串 .
2: 串口的每一次接收数据都会产生一次中断
3: 接收数据是否完成的标志是判断 末位的'0x0d'和'0x0a'
发送的模板:
USART_SendData(USART1, '2');
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
printf("r你发送的消息为:rn");
接收的模板:
if(USART_RX_STA&0x8000) // 判断标志位,已经有数据接收到,可以读取出来。
{
printf("USART_RX_STA02=%drn",USART_RX_STA);
len=USART_RX_STA&0x3fff;//接收的数据长度
printf("len=%drn",len);
printf("rn你发送的消息:rn");
if(USART_RX_BUF[0]=='e') LED1=!LED1; //判断接收的消息
for(t=0;t
{
//USART_SendData(USART1, USART_RX_BUF[t]); //向串口1 发送数据
USART_SendData(USART1, 5465);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//表示发送完成
}
printf("rnrn");//换行
USART_RX_STA=0;
}
总结:1 :STM32 接收和发送的数据都是字符串 .
2: 串口的每一次接收数据都会产生一次中断
3: 接收数据是否完成的标志是判断 末位的'0x0d'和'0x0a'
发送的模板:
USART_SendData(USART1, '2');
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
printf("r你发送的消息为:rn");
接收的模板:
if(USART_RX_STA&0x8000) // 判断标志位,已经有数据接收到,可以读取出来。
{
printf("USART_RX_STA02=%drn",USART_RX_STA);
len=USART_RX_STA&0x3fff;//接收的数据长度
printf("len=%drn",len);
printf("rn你发送的消息:rn");
if(USART_RX_BUF[0]=='e') LED1=!LED1; //判断接收的消息
for(t=0;t
{
//USART_SendData(USART1, USART_RX_BUF[t]); //向串口1 发送数据
USART_SendData(USART1, 5465);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//表示发送完成
}
printf("rnrn");//换行
USART_RX_STA=0;
}
举报