请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC3220S-LAUNCHXL 您好!
我正在尝试使用 BTN 中断触发 BTTask()中的出厂复位,如下所示。 但是、我遇到了错误。 如何使其正常工作?
void *BTNTask (void *arg0) { SEM_INIT (doReset、0、0); /*调用驱动程序初始化函数*/ //GPIO_init(); /*配置 LED 和按钮引脚*/ GPIO_setConfig (Board_GPIO_LED0、GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig (Board_GPIO_Button1、GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_INT_RISING); /*打开用户 LED */ GPIO_WRITE (Board_GPIO_LED0、Board_GPIO_LED_ON); /*安装按钮回调*/ GPIO_setCallback (Board_GPIO_Button1、gpioButtonFxn0); /*启用中断*/ GPIO_enableInt (Board_GPIO_Button1); //while (1){ SEM_WAIT (doReset); Display_printf (display、0、0、"\n\n 立即重置 Gonna!!!\n\n"); int32_t 模式; _i32 slRetVal; SlfsRetToFactoryCommand_t RetToFactoryCommand; _i32状态、扩展状态; /*执行恢复出厂设置*/ RetToFactoryCommand.Operation = SL_FS_factory_RET_TO_image; 状态= sl_FsCtl ((slFsCtl_e) sl_FS_CTL_restore、0、NULL、(_u8 *)&RetToFactoryCommand、sizeof (slFsRetToFactoryCommand_t)、 空、0、NULL); 如果(_i32)状态< 0) { /*错误*/ //状态由“已签名”错误编号和“扩展”状态组成 状态=(_i16)状态>> 16; ExtendedStatus =(_U16) slRetVal & 0xFFFF; Display_printf (display、0、0、"出厂重置失败、错误状态:%d、扩展状态:%d\r\n"、状态、扩展状态); } //重置 display_printf (display、0、0、"正在停止 sl\n\r"); sl_Stop (10); display_printf (display、0、0、"正在启动 sl\n\r"); MODE = SL_Start (NULL、NULL、NULL); 如果(MODE = SL_ERROR_RESTORE_IMAGE_COMPLETE) { Display_printf (display、0、0、"已接收出厂复位状态代码。 正在重置 MCU..."); PRCMMCUReset (1); } 如果(MODE < 0) { display_printf (display、0、0、"sl_start failed、error code:%d \r\n"、mode); /*while (1){ ; }*/ } 其他 { display_printf (display、0、0、"FR Unknown error code:%d \r\n"、mode); } /CC3220 PRCMMCUReset (1); //} 返回 NULL; } /* === gpioButtonFxn0 === * Board_GPIO_BUTTON0上 GPIO 中断的回调函数。 */ void gpioButtonFxn0 (uint_least8_t index) { SEM_post (doReset)(&doReset); /*清除 GPIO 中断并切换 LED */ GPIO_TOGGLE (Board_GPIO_LED0); }
这些是我的误差输出:
