前言

把 MTCK (GPIO39) ,接到外部设备之后,在代码里面初始化之后,就不能识别到USB口了( USB JTAG/serial debug unit)。只要不初始化这个引脚,就能够正常识别到USB口。

#define VEXT_PIN    (GPIO_NUM_39)
#define GPIO_OUTPUT_PIN_SEL (1ULL<<VEXT_PIN)
void tau_gpio_init(void)
{
    //zero-initialize the config structure.
    gpio_config_t io_conf = {};
    //disable interrupt
    io_conf.intr_type = GPIO_INTR_DISABLE;
    //set as output mode
    io_conf.mode = GPIO_MODE_OUTPUT;
    //bit mask of the pins that you want to set,e.g.GPIO18/19
    io_conf.pin_bit_mask = GPIO_OUTPUT_PIN_SEL;
    //disable pull-down mode
    io_conf.pull_down_en = 0;
    //disable pull-up mode
    io_conf.pull_up_en = 0;
    //configure GPIO with the given settings
    gpio_config(&io_conf);
    gpio_set_level(VEXT_PIN, 0);
}

过程

  1. 在尝试过各种方案之后,发现,错误点是在于RTC 时钟源配置错误了。目前这一款开发板是没有外部 32K 晶振的,所以在RTC时钟源哪一项选择的时候需要注意一下。
  2. RTC时钟源配置参看 ,RTC时钟配置

RTC时钟配置

idf.py menuconfig
Component config → ESP32S3-Specific → RTC clock source

这里的配置需要和具体的硬件相关联起来,比如有些开发板有外接晶振 32K ,有些就没有。有些主控是有内部 8M 晶振的, 而有些就没有内部 8M 晶振。

小结

  1. 但是这个应该不是根本原因,因为RTC时钟源配置错误,但是只要不调用复用 JTAG 引脚的函数就能正常识别到USB口,并且正常运行。

原文地址:http://www.cnblogs.com/Spin-jump/p/16923543.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性