完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
ESP32设定的configtiCK_RATE_HZ为100,这是我运行的测试程序,
while(1) { if(test%2) { gpio_set_level(BLINK_GPIO, true); } else { gpio_set_level(BLINK_GPIO, false); } test++; } 每过10ms就会有一个4us多的空闲时间,这个时间他在干嘛,如何关闭 |
|
相关推荐
1个回答
|
|
|
ESP32 是一款基于 Xtensa 架构的系统级芯片 (SoC),它通常使用 FreeRTOS 作为其操作系统。FreeRTOS 是一个实时操作系统 (RTOS),它为 ESP32 提供了任务调度、内存管理和中断处理等功能。在某些情况下,您可能希望关闭 FreeRTOS,但这通常不推荐,因为它可能会导致系统不稳定。
关于您提到的 `configTICK_RATE_HZ`,它是一个宏定义,用于设置 FreeRTOS 的时钟频率。在您的示例中,它的值被设置为 100,这意味着每秒钟会产生 100 个时钟周期。这个值通常用于确定 FreeRTOS 的调度器的精度。 现在,让我们分析您的测试程序: ```c while(1) { if(test%2) { gpio_set_level(BLINK_GPIO, true); } else { // 这里缺少了 gpio_set_level(BLINK_GPIO, false); 来关闭 GPIO } test++; } ``` 这个程序的目的似乎是在 GPIO 上创建一个闪烁的 LED。然而,您的代码中缺少了关闭 GPIO 的部分。为了实现这个功能,您需要在 `else` 语句中添加 `gpio_set_level(BLINK_GPIO, false);`。 完整的代码应该是这样的: ```c while(1) { if(test%2) { gpio_set_level(BLINK_GPIO, true); } else { gpio_set_level(BLINK_GPIO, false); } test++; } ``` 这样,LED 将在 GPIO 上交替闪烁。 总之,虽然关闭 FreeRTOS 是可能的,但这通常不推荐,因为它可能会导致系统不稳定。您的测试程序需要添加关闭 GPIO 的部分以实现预期的功能。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
448 浏览 0 评论
971 浏览 0 评论
1695 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1349 浏览 1 评论
1246 浏览 1 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1272浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
938浏览 3评论
2370浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2556浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1066浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 03:31 , Processed in 1.004001 second(s), Total 76, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
423
