首页 > 代码库 > NRF51822之32Mhz

NRF51822之32Mhz

硬件平台为微雪BLE400的(将原来的16mhz晶振改为32mhz。两个旁电容改为22pf)

技术分享

 

以nRF51_SDK_10.0.0_dc26b5e\examples\ble_peripheral\ble_app_uart项目为例

技术分享

 

在main.c中进行修改

#if defined( USB_SYSTEM_CLOCK_32MHZ)
#define DEVICE_NAME                     "Nordic_UART_32mhz"                               /**< Name of device. Will be included in the advertising data. */
#else
#define DEVICE_NAME                     "Nordic_UART"                               /**< Name of device. Will be included in the advertising data. */
#endif//USB_SYSTEM_CLOCK_32MHZ

#if defined (USB_SYSTEM_CLOCK_32MHZ)
/**@brief Function for Set the external high frequency clock source to 32 MHz .
 */
static void setClock( void )
{
    // Set the external high frequency clock source to 32 MHz
    NRF_CLOCK->XTALFREQ = 0xFFFFFF00;
    
    // Start the external high frequency crystal
    NRF_CLOCK->EVENTS_HFCLKSTARTED = 0;
    NRF_CLOCK->TASKS_HFCLKSTART = 1;
    
    // Wait for the external oscillator to start up
    while (NRF_CLOCK->EVENTS_HFCLKSTARTED == 0) {}
    
}
#endif//USB_SYSTEM_CLOCK_32MHZ

/**@brief Application main function.
 */
int main(void)
{
    uint32_t err_code;
    bool erase_bonds;
    uint8_t  start_string[] = START_STRING;
#if defined (USB_SYSTEM_CLOCK_32MHZ) setClock(); #endif//USB_SYSTEM_CLOCK_32MHZ

// Initialize. APP_TIMER_INIT(APP_TIMER_PRESCALER, APP_TIMER_OP_QUEUE_SIZE, false); uart_init(); buttons_leds_init(&erase_bonds); ble_stack_init(); gap_params_init(); services_init(); advertising_init(); conn_params_init(); printf("%s",start_string); err_code = ble_advertising_start(BLE_ADV_MODE_FAST); APP_ERROR_CHECK(err_code); // Enter main loop. for (;;) { power_manage(); } }

修改system_nrf51.C

技术分享

 

#if defined( USB_SYSTEM_CLOCK_32MHZ)
#define __SYSTEM_CLOCK      (32000000UL)     /*!< nRF51 devices use a fixed System Clock Frequency of 32MHz */
#else
#define __SYSTEM_CLOCK      (16000000UL)     /*!< nRF51 devices use a fixed System Clock Frequency of 16MHz */
#endif//USB_SYSTEM_CLOCK_32MHZ

 后面的测试的步骤和16mhz步骤相同。

 

NRF51822之32Mhz