本帖最后由 lanjackg2003 于 2021-5-21 08:01 编辑
EVT包里面BLE需要调用CH57X_BLEInit 此函数进行初始化
- /*******************************************************************************
- * @fn CH57X_BLEInit
- *
- * [url=home.php?mod=space&uid=247401]@brief[/url] BLE 库初始化
- *
- * input parameters
- *
- * @param None.
- *
- * output parameters
- *
- * @param None.
- *
- * [url=home.php?mod=space&uid=266161]@return[/url] None.
- */
- void CH57X_BLEInit( void )
- {
- uint8 i;
- bleConfig_t cfg;
- if ( tmos_memcmp( VER_LIB, VER_FILE, strlen( VER_FILE ) ) == FALSE )
- {
- PRINT( "head file error...\n" );
- while( 1 )
- ;
- }
- SysTick_Config( SysTick_LOAD_RELOAD_Msk );
- PFIC_DisableIRQ( SysTick_IRQn );
- tmos_memset( &cfg, 0, sizeof(bleConfig_t) );
- cfg.MEMAddr = ( u32 ) MEM_BUF;
- cfg.MEMLen = ( u32 ) BLE_MEMHEAP_SIZE;
- cfg.BufMaxLen = ( u32 ) BLE_BUFF_MAX_LEN;
- cfg.BufNumber = ( u32 ) BLE_BUFF_NUM;
- cfg.TxNumEvent = ( u32 ) BLE_TX_NUM_EVENT;
- cfg.TxPower = ( u32 ) BLE_TX_POWER;
- #if (defined (BLE_SNV)) && (BLE_SNV == TRUE)
- FLASH_ROM_LOCK( 0 ); // 解锁flash
- cfg.SNVAddr = ( u32 ) BLE_SNV_ADDR;
- cfg.readFlashCB = Lib_Read_Flash;
- cfg.writeFlashCB = Lib_Write_Flash;
- #endif
- #if( CLK_OSC32K )
- cfg.SelRTCClock = ( u32 ) CLK_OSC32K;
- #endif
- cfg.ConnectNumber = ( PERIPHERAL_MAX_CONNECTION & 3 ) | ( CENTRAL_MAX_CONNECTION << 2 );
- cfg.srandCB = SYS_GetSysTickCnt;
- #if (defined TEM_SAMPLE) && (TEM_SAMPLE == TRUE)
- cfg.tsCB = HAL_GetInterTempValue; // 根据温度变化校准RF和内部RC( 大于7摄氏度 )
- #if( CLK_OSC32K )
- cfg.rcCB = Lib_Calibration_LSI; // 内部32K时钟校准
- #endif
- #endif
- #if (defined (HAL_SLEEP)) && (HAL_SLEEP == TRUE)
- cfg.WakeUpTime = WAKE_UP_RTC_MAX_TIME;
- cfg.sleepCB = CH57X_LowPower; // 启用睡眠
- #endif
- #if (defined (BLE_MAC)) && (BLE_MAC == TRUE)
- for ( i = 0; i < 6; i++ )
- cfg.MacAddr[i] = MacAddr[5 - i];
- #else
- {
- uint8 MacAddr[6];
- GetMACAddress( MacAddr );
- for(i=0;i<6;i++) cfg.MacAddr[i] = MacAddr[i]; // 使用芯片mac地址
- }
- #endif
- if ( !cfg.MEMAddr || cfg.MEMLen < 4 * 1024 )
- while( 1 )
- ;
- i = BLE_LibInit( &cfg );
- if ( i )
- {
- PRINT( "LIB init error code: %x ...\n", i );
- while( 1 )
- ;
- }
- }
我想问一下,初始化当中的 SysTick_IRQn 中断是否一定得关掉。
当前我代码中的其他功能都是使用 SysTick_IRQn 中断
|