新手入门
- 积分
- 11
- 金钱
- 11
- 注册时间
- 2020-12-1
- 在线时间
- 2 小时
|

楼主 |
发表于 2021-7-30 11:06:20
|
显示全部楼层
if(USART_ReceiveData(USART2)=='a')
{
flag=1; //a为帧开头
j=0;
}
if(flag==1&&USART_ReceiveData(USART2)>='0'&&USART_ReceiveData(USART2)<='9')
{
result[j]=USART_ReceiveData(USART2)-'0'; //字符化作对应int
printf("%d",result[j]); //输出此刻接收到的数据;%d为有符号十进制整数,%u为无符号十进制整数
if(USART_GetFlagStatus(USART2, USART_IT_RXNE) != RESET)
printf("Flag=set"); //用来检测标志位是否被及时清除
j++;
delay_ms(100);
}
if(USART_ReceiveData(USART2)=='b') //b为帧结束位
{
flag=2;
}
if(flag==2) //解析成各位数字和
{
Result=0;
for(t=0;t<j;t++)
{
Result=Result+result[t]*pow(10.0,(j-t-1)); //pow(a,b),a的b次方,ab为float位或者double类型
printf("re:%d",result[t]);
}
TIM2_PWM_Init(10*Result);
//printf("%u\r\n",Result);
flag=0;
delay_ms(10);
} |
|