完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
Arduino下,用UART做LIN通讯,需要至少连续发送13位长度的低电平,但是uart的Serial2.write一次只能发送一个字节长度的低电平,结束后就会拉高,违反了通讯规则
所以想要通过使用gpio来实现长时间低电平,但是在将PIN17设置为gpio之后无法再将PIN17设置为uart了 请给予帮助,谢谢 |
|
相关推荐
1个回答
|
|
|
在这种情况下,您可以尝试以下步骤来解决问题:
1. 首先,确保您已经正确安装了ESP32开发板的Arduino核心。在Arduino IDE中,打开“文件”>“首选项”,在“附加开发板管理器网址”中添加ESP32的URL:https://dl.espressif.com/dl/package_esp32_index.json。然后打开“工具”>“开发板”>“开发板管理器”,搜索并安装“esp32”开发板。 2. 在编写代码时,确保您已经正确地设置了UART。以下是一个示例代码,用于初始化UART并将其与GPIO 16和17关联: ```cpp #include void setup() { Serial.begin(115200); Serial2.begin(115200, SERIAL_8N1, 16, 17); // 设置UART2,使用GPIO 16和17 } void loop() { // 这里可以添加您的代码 } ``` 3. 如果您仍然无法将PIN16和PIN17设置为UART,可以尝试使用其他引脚。ESP32有多个UART通道,您可以尝试使用其他通道和引脚。例如,使用UART0(TX:1,RX:3)或UART1(TX:10,RX:9)。 4. 如果您需要长时间保持低电平,可以考虑使用软件PWM(脉冲宽度调制)来控制GPIO引脚。以下是一个示例代码,用于在GPIO 16上生成低电平: ```cpp #include void setup() { Serial.begin(115200); pinMode(16, OUTPUT); } void loop() { digitalWrite(16, LOW); // 保持低电平 delay(1000); // 持续1秒 } ``` 5. 如果以上方法都无法解决问题,建议您查阅ESP32的官方文档和相关论坛,以获取更多关于UART和GPIO配置的信息。 希望这些建议能帮助您解决问题。祝您编程愉快! |
|
|
|
|
只有小组成员才能发言,加入小组>>
448 浏览 0 评论
971 浏览 0 评论
1695 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1349 浏览 1 评论
1246 浏览 1 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1270浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
936浏览 3评论
2368浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2555浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1063浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-8 09:22 , Processed in 1.071050 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
457
