可以使用串口的DMA啊,再打开中断,由DMA处理,这样,只要设置好DMA后,启动DMA,会自动收发数据的了,不用你的CPU干预的了
这样可以相当于非阻塞的了
可以利用dma加串口中断的方式实现非阻塞收发,发送的时候数据放到内存一块地址,dma配置好启动之后就不用管了,可以执行其他任务,
接收中断就是收到数据直接放到一块内存中,然后dma会产生中断,告诉mcu可以去读取数据了
阻塞一般是在主循环中使用时才有用的,在中断中,只要进了中断就进行处理,不进中断就不处理,也没有阻塞的意义了
在主循环中不阻塞的方式,就是判断有没有接收到串口数据,在没有时,直接返回,而不是使用while等待