nRF52820不能全部擦除用以下方式处理
因为VBUS供电的话经过芯片内部升压默认值是1.8V,此时VDD应该是1.8V供电,所以擦除烧录的时候电压不稳定导致的
可以软件配置高于1.8V以上就可以
在代码初始化加这段代码就可以
// USB CODE END static void gpio_output_voltage_setup(void) { // Configure UICR_REGOUT0 register only if it is set to default value. if ( (NRF_UICR->REGOUT0 & UICR_REGOUT0_VOUT_Msk) == (UICR_REGOUT0_VOUT_DEFAULT << UICR_REGOUT0_VOUT_Pos) ) { NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen; while (NRF_NVMC->READY == NVMC_READY_READY_Busy){} NRF_UICR->REGOUT0 = (NRF_UICR->REGOUT0 & ~((uint32_t)UICR_REGOUT0_VOUT_Msk)) | (UICR_REGOUT0_VOUT_3V0 << UICR_REGOUT0_VOUT_Pos); NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren; while (NRF_NVMC->READY == NVMC_READY_READY_Busy){} // System reset is needed to update UICR registers. NVIC_SystemReset(); } }
然后在 APP中初始化的时候调佣:
/** @brief Application main function. */ int main(void) { ret_code_t ret; static const app_usbd_config_t usbd_config = { .ev_state_proc = usbd_user_ev_handler }; gpio_output_voltage_setup(); // 执行该语句将输出 3.3V(实际为 3.0) // Initialize. log_init(); timers_init();
本文来自博客园,作者:merafour,转载请注明原文链接:https://www.cnblogs.com/merafour/p/17824344.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?