nRF51822使用32M晶体对应软件的修改
程序员文章站
2024-03-25 00:02:17
...
nRF51xx使用32m晶体,需要做如下修改:
A .在路径xx\xx\xx\radio_example\arm
1.首先修改 system_nrf51.c 中的内容
在system_nrf51.c 文件
把
#define__SYSTEM_CLOCK (16000000UL)
改成
#define__SYSTEM_CLOCK (32000000UL)
2:在 void SystemInit(void)添加一些代码,如**释提示:
voidSystemInit(void)
{
//添加
if(*(uint32_t*)0x10001008==0xFFFFFFFF)
{
NRF_NVMC->CONFIG= NVMC_CONFIG_WEN_Wen<< NVMC_CONFIG_WEN_Pos;
while(NRF_NVMC->READY==NVMC_READY_READY_Busy)
{}
*(uint32_t*)0x10001008=0xFFFFFF00;
NRF_NVMC->CONFIG= NVMC_CONFIG_WEN_Ren<<NVMC_CONFIG_WEN_Pos;
while(NRF_NVMC->READY==NVMC_READY_READY_Busy)
{}
NVIC_SystemReset();
while(true){}
}
}
3:更改 nrf51_bitfields.h 文件中的宏。
改// #define CLOCK_XTALFREQ_XTALFREQ_Msk (0xFFUL << CLOCK_XTALFREQ_XTALFREQ_Pos)/*!<Bit maskofXTALFREQfield. */
为
#define CLOCK_XTALFREQ_XTALFREQ_Msk (0x00UL << CLOCK_XTALFREQ_XTALFREQ_Pos)
到这基本搞定,可以试着运行一下了。