ESP32之UART

文章讲述了ESP32如何处理LiDAR通过串口发送的数据,指出ESP32使用阻塞方式而非中断接收,并探讨了使用pthread_create和FreeRTOS的xTaskCreate创建线程的区别。重点介绍了uart_read_bytes函数用于阻塞接收串口数据的用法。

        LiDAR是通过串口发送数据的,所以需要配置ESP32的串口。

        起初还以为和STM32的串口差不多,用中断接收数据,结果过看了官方例程,发现根本没有中断(普通接收中断)。

        ESP32的串口是通过阻塞接收的方式来获取串口的数据,所以需要用到多线程。

        说到多线程,之前用WIFI的时候发现ESP32居然可以用pthread_create()来创建线程,那么问题就来了,用pthread_create()和用Free RTOS的xTaskCreate()创建线程有什么区别吗。

        回归ESP32的串口这个问题。

        int uart_read_bytes(uart_port_t , uint8_t * , uint32_t , TickType_t ) 这个函数用来阻塞获取串口接收到的数据,参数含义如下:

                第一个参数是串口号。

                第二个参数是把串口接收到的数据放进哪块内存区域。

                第三个参数是对应内存区域的长度。

                第四个参数是阻塞时间。

       第三、四个参数应相配合使用。当阻塞时间未到,数据长度到了,返回数据;当数据长度没到,阻塞时间到了,也返回数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值