CN / EN
CN / EN

提问

设计支持

您的项目私密技术问题如需获得一对一支持,请点击下方联系我们。

GR533X的ble.h里关于AES加解密部分是否有例程或使用时需要注意的地方,在GR5331AENI芯片上使用发现无法进入回调函数 GR533x

已解决

159***084

2026-01-23 09:38

有相关使用例程或者使用说明吗,我这样子调用了一下,发现进不到这个回调函数里。后续又在SDK \ble\ble_peripheral\ble_app_beacon工程中尝试,还是不行

int main(void)

{

static BaseType_t value;


delay_ms(1000);

app_periph_init(); /*<init user periph .*/

/*其他功能初始化函数*/

ble_stack_init(ble_evt_handler, &heaps_table); /*< init ble stack*/

crypt_cbc_test();

pwr_mgmt_mode_set(PMR_MGMT_IDLE_MODE);


/*其他无关任务创建*/

value = xTaskCreate(adv_manager_task, "ble_gap_task", 1024, NULL, 1, &adv_manager_handle);

xTaskCreate(dfu_schedule_task, "dfu_schedule_task", DFU_TASK_STACK_SIZE, NULL, configMAX_PRIORITIES - 2, NULL);


vTaskStartScheduler(); /*< freertos run all tasks*/

for (;;); /*< Never perform here */

}

uint8_t key[16] = { 0x01,0x02,0x03,0x04,

0x01,0x02,0x03,0x04,

0x01,0x02,0x03,0x04,

0x01,0x02,0x03,0x04}; // 16 字节密钥


uint8_t data[16] = {0x01,0x02,0x03,0x04,

0x01,0x02,0x03,0x04,

0x01,0x02,0x03,0x04,

0x01,0x02,0x03,0x04}; // 16 字节数据(必须是 16 的倍数)


uint8_t iv[16] = { 0x01,0x02,0x03,0x04,

0x01,0x02,0x03,0x04,

0x01,0x02,0x03,0x04,

0x01,0x02,0x03,0x04}; // 16 字节数据(必须是 16 的倍数)

void my_aes_callback(uint8_t status, const uint8_t* aes_result, uint32_t src_info)

{

if (1)

{

data[0]=1;

}

}


//(const uint8_t * key, const uint8_t * iv, const uint8_t * val, aes_result_cb res_cb, uint32_t src_info);


void crypt_cbc_test(void)

{

ble_aes_cbc_encrypt(key,iv,data, my_aes_callback, 1);

}


0收藏

0赞成

最佳答案

185***527

汇顶员工
2026-01-23 10:44

Hi ,

问题已经是BLE Stack没有初始化就绪就调用了BLE AES API,所以你可以尝试在BLE Stack初始化完成事件上报之后调用

12条评论

0赞成

0收藏

您的评论

登录后可回答问题,请 注册

我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注