初级会员

- 积分
- 189
- 金钱
- 189
- 注册时间
- 2018-8-17
- 在线时间
- 30 小时
|

楼主 |
发表于 2018-11-15 06:39:28
|
显示全部楼层
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度 0011 1111 1111 1111
printf("\r\n您发送的消息为:\r\n\r\n");
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}//USART_FLAG_TC是发送完成的表示符
printf("\n\n");
num0=USART_RX_BUF[0]-48;
num1=USART_RX_BUF[1]-48;
num2=USART_RX_BUF[2]-48;
if(num1<0)
num1+=48;
if(num2<0)
num2+=48;
num=num0*100+num1*10+num2*1;
USART_RX_STA=0;//串口的标志位
printf("num0=%lf\r\n",num0);
printf("num1=%lf\r\n",num1);
printf("num2=%lf\r\n",num2);
printf("num=%lf\r\n",num);
}
这样只可以计算100-999啊
十位个位不对了 谢谢原子哥 |
|