STM32
直播中

李慧

7年用户 872经验值
私信 关注
[问答]

如何使用STM32串口中断服务函数进行接收并进行转化为int型?

如何使用STM32串口中断服务函数进行接收并进行转化为int型?

回帖(1)

程春华

2021-12-7 11:14:43
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的十六进制数。
- 利用这个就可以进行数位判断等操作了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分