错误0x48通常是由于供电问题引起的。 检查您的BlueNRG1供电电路是否正确。
确保您的BlueNRG1固件已更新到最新版本。 有时,BlueNRG1上旧版本的固件可能导致初始化问题。
可能是堆栈尺寸设置不正确引起的。根据应用程序要求调整堆栈大小。 下面是可供参考的代码示例:
#define APP_STACK_SIZE (0x200) /* 512 bytes */
static uint32_t app_stack_size = APP_STACK_SIZE;
void SystemInit(void){
SET_BIT(SCB->CCR, SCB_CCR_STKALIGN_Msk); /* Enable unaligned accesses */
__set_MSP((uint32_t)(&__initial_msp));
__set_PSP((uint32_t)(&__initial_msp));
__set_CONTROL(0);
__ASM volatile("mov r0, %[stack_size] \n"
"msr msp, r0 \n"
"mov r0, #2 \n"
"msr control, r0 \n"
:
: [ stack_size ] "r"(app_stack_size)
: "r0");
}
这段代码将应用程序堆栈大小设置为512字节。