移植
我的移植思路是,将ST官方的sample当作rtt中的一个线程,这样子即不影响其他线程的使用移植起来也比较方便。
工程创建
创建ibeacon线程
static int ibeacon_thread_init(void)
{
rt_thread_t ibeacon_thread;
ibeacon_thread = rt_thread_create("ibeacon",
ibeacon_thread_entry,
RT_NULL,
1024,
2,
10);
if (ibeacon_thread != RT_NULL)
{
rt_thread_startup(ibeacon_thread);
}
return RT_EOK;
}
INIT_APP_EXPORT(ibeacon_thread_init);
将st官方sample中的main函数移植过来,放在ibeacon线程的入口函数中
static void ibeacon_thread_entry(void *parameter)
{
LOG_D("ibeacon thread entry...");
/**
* The OPTVERR flag is wrongly set at power on
* It shall be cleared before using any HAL_FLASH_xxx() api
*/
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_OPTVERR);
HAL_Init();
Reset_Device();
Init_Exti();
MX_GPIO_Init();
MX_RTC_Init();
/* Init code for STM32_WPAN */
APPE_Init();
while (1)
{
UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);
rt_thread_mdelay(10);
}
}
将STM32_WPAN中间件整体复制过来,然后根据st的sample工程将BLE相关文件都加进去
编译,根据编译错误将缺失的文件加入到工程中去,直到编译完成
|