maixpy IDE 写K210的串口发送函数,数据会以ASCII码的形式发送出来
下面的代码K210发送的是一个不大于三位数的ASCII码数据,使用STM32串口中断服务函数进行接收并进行转化为int型。
void X_USART_IRQHandler(void)
{
uint8_t xieding=0;
```c
if(USART_GetITStatus(X_USART,USART_IT_RXNE)!=RESET)
{
xieding = USART_ReceiveData( X_USART );
if (xieding==10)
{
if (shuzhu[2]==0)
{X=shuzhu[0]*10+shuzhu[1];}
if (shuzhu[2]!=0)
{X=shuzhu[0]*100+shuzhu[1]*10+shuzhu[2];}
shuwei=0;
memset(shuzhu, 0, sizeof(shuzhu));
printf("X%dn",X);
}
else
{
if (shuwei==0)
{shuzhu[0]=xieding-'0';shuwei=1;}
else if (shuwei==1)
{shuzhu[1]=xieding-'0';shuwei=2;}
else if (shuwei==2)
{shuzhu[2]=xieding-'0';}
}
}
}
- shuzhu[3],shuwei,X三个变量需要自己定义,代码比较简单就不过多解释了。简单来说K210每次发送的一个整形数据后面都会跟一个0A的十六进制数。
- 利用这个就可以进行数位判断等操作了。
maixpy IDE 写K210的串口发送函数,数据会以ASCII码的形式发送出来
下面的代码K210发送的是一个不大于三位数的ASCII码数据,使用STM32串口中断服务函数进行接收并进行转化为int型。
void X_USART_IRQHandler(void)
{
uint8_t xieding=0;
```c
if(USART_GetITStatus(X_USART,USART_IT_RXNE)!=RESET)
{
xieding = USART_ReceiveData( X_USART );
if (xieding==10)
{
if (shuzhu[2]==0)
{X=shuzhu[0]*10+shuzhu[1];}
if (shuzhu[2]!=0)
{X=shuzhu[0]*100+shuzhu[1]*10+shuzhu[2];}
shuwei=0;
memset(shuzhu, 0, sizeof(shuzhu));
printf("X%dn",X);
}
else
{
if (shuwei==0)
{shuzhu[0]=xieding-'0';shuwei=1;}
else if (shuwei==1)
{shuzhu[1]=xieding-'0';shuwei=2;}
else if (shuwei==2)
{shuzhu[2]=xieding-'0';}
}
}
}
- shuzhu[3],shuwei,X三个变量需要自己定义,代码比较简单就不过多解释了。简单来说K210每次发送的一个整形数据后面都会跟一个0A的十六进制数。
- 利用这个就可以进行数位判断等操作了。
举报