esp32s3
泛凡(Linyongui)
有时候选择比努力更重要,愿自己永远像颗钉子。
展开
-
【ESP32日记006】多路VL6180激光模块测距(有放大检测)实现
实际使用中,需要注意在做EFT测试或环境干扰比较大的情况下,激光模块可能 工作异常(复位等),无法应答IIC,此时需要按需重新对失效的模块执行一下初始化,已确保模块工作正常。2.1、创建一个结构体,用于保存各个激光探头的数据,及相关需要用到的参数,如状态等。这里使用的是单次测距的方式,连续测距类似,直接调用api读取即可。2.2、多从机模式下的参数配置。2.3、激光探头初始化。原创 2024-05-16 11:26:06 · 397 阅读 · 0 评论 -
【ESP32日记005】实现通过WiFi热点进行配网,设置MQTT参数
项目上需要使用MQTT协议进行数据上报,为了方便配置热点和MQTT服务器信息,写了个简易的页面用于实现通过ESP32的WiFi热点进行配网,实现 相关参数的本地设置。原创 2024-05-16 10:44:30 · 469 阅读 · 0 评论 -
【ESP32日记004】ESP32S3 上电一直重启报错分析之——rst:0x3 (RTC_SW_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
故我也怀疑是DCDC纹波较大,导致产品启动异常,一直报错重启。后来认真看报错信息,“SPIWP:0xee”,是SPI读写报错,难道是芯片工作了,但是flash读写异常导致的,于是看了下电路,发现,时钟和数据线上我都给加了330R的电阻,于是将时钟线电阻改为100R,其他电阻用0R替换,重新上电,板子正常跑起来了。2、EMI问题,这个项目上最头痛的问题,使用esp32开发产品,设计时一定要充电评估此问题,做抗干扰测试,电脉冲群测试、ESD静电测试、浪涌雷击测试最好先验证下,有问题及时调整。原创 2024-03-24 10:58:21 · 2523 阅读 · 1 评论 -
【ESP32日记001】慎用 while (Serial.available()) ,一个坑导致debug用了一天时间
异常分析:有问题的代码主要是是因为使用while 中使用Serial.available()的回参进行判断,当串口发送比较慢时会出现退出循环,等到下次进入串口接收的时候, cur_num 被清空,导致前面的数据丢失。一开始一直找都没注意到这个问题,因为部分数据又是解析OK的,就陷入一个死循环状态,最后才发现根本问题点。2、用while(1)死循环,在死循环里等待换行符,再退出死循环,这里需要加一个超时退出机制;这段代码使用的是while (Serial.available()) ,进行接收数据。原创 2024-05-08 18:12:54 · 398 阅读 · 0 评论 -
【ESP32日记002】透传通讯协议的解析实现及JSON数据的解析
当协议号较多时,使用if直接进行判断的话,会导致if判断多层嵌套、代码段太长不方便阅读等问题,后续你改为增加一个结构体,在for循环中进行判断,以回调函数的方式惊醒数据处理,这样代码效率更高‘可读性会更好。最近项目上增加了一个联网功能,以实现设备在手机上的远程交互、数据上报、指令下发控制等功能。使用的是华为的鸿蒙透传协议,MCU上需要实现对数据的接收、解析和应答等处理。2.3、数据拆解后,就可以很方便的对数据有效性进行判断,这里数据有效性判断部分的代码就不贴了。3、JSON数据的解析。原创 2024-05-13 10:22:27 · 442 阅读 · 0 评论 -
【ESP32日记003】EPS32S3上使用自身WiFi热点,用于OTA升级的代码实现
最近客户突然新增一个本地OTA需求,要求能实现让用户通过手机按需对设备进行程序更新,经评估后,考虑直接使用芯片自带的WiFi功能,以实现上电后,5分钟内开启WiFi热点,用于进行OTA升级,具体实现代码如下:原创 2024-05-13 12:05:34 · 759 阅读 · 0 评论