完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
以下问题在使用platformio的ARDUINO框架开发ESP32-S3时发现
在drive/ledc.c的 Code: Select all uint32_t ledc_get_freq(ledc_mode_t speed_mode, ledc_timer_t timer_num) { LEDC_ARG_CHECK(speed_mode < LEDC_SPEED_MODE_MAX, "speed_mode"); LEDC_ARG_CHECK(timer_num < LEDC_TIMER_MAX, "timer_num"); LEDC_CHECK(p_ledc_obj[speed_mode] != NULL, LEDC_NOT_INIT, ESP_ERR_INVALID_STATE); portENTER_CRITICAL(&ledc_spinlock); uint32_t clock_divider = 0; uint32_t duty_resolution = 0; ledc_clk_cfg_t clk_cfg = LEDC_USE_APB_CLK; ledc_hal_get_clock_divider(&(p_ledc_obj[speed_mode]->ledc_hal), timer_num, &clock_divider); ledc_hal_get_duty_resolution(&(p_ledc_obj[speed_mode]->ledc_hal), timer_num, &duty_resolution); ledc_hal_get_clk_cfg(&(p_ledc_obj[speed_mode]->ledc_hal), timer_num, &clk_cfg); uint32_t precision = (0x1 << duty_resolution); uint32_t src_clk_freq = ledc_get_src_clk_freq(clk_cfg); portEXIT_CRITICAL(&ledc_spinlock); return ((uint64_t) src_clk_freq << 8) / precision / clock_divider; } 函数中 利用 Code: Select all ledc_hal_get_clock_divider(&(p_ledc_obj[speed_mode]->ledc_hal), timer_num, &clock_divider); 获取到clock_divider的值为0 在随后的频率计算时 Code: Select all return ((uint64_t) src_clk_freq << 8) / precision / clock_divider; 会作为分母使用,导致系统报错 IntegerDivideByZero 后重启 望及时修复 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
468 浏览 0 评论
984 浏览 0 评论
1707 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1364 浏览 1 评论
1253 浏览 1 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1286浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
943浏览 3评论
2378浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2565浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1071浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 03:44 , Processed in 0.595070 second(s), Total 68, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
889
