开发板:初雪得100出头那块 NRF52840 EVAL KIT
下载器:JLINK V8固件,已经更新到最新的固件了,我用过ST LINK,和DAP都可以下载, 但一旦全片擦除要解锁芯片写保护,只能用JLINK来解.
内容: 点灯
原理图如下
配置寄存器函数
nrf_gpio_cfg_output(led_number); 配置输出
nrf_gpio_pin_clear(led_number); 配置端口输出0
nrf_gpio_pin_set(led_number); 配置端口输出1
NRF_GPIO_PIN_MAP(port, pin) (((port) << 5) | ((pin) & 0x1F)) 用来映射GPIO引脚的,比如P1.9就是0x29
LED初始化代码
#define LED0 NRF_GPIO_PIN_MAP(0,13)
#define LED1 NRF_GPIO_PIN_MAP(0,14)
#define LED2 NRF_GPIO_PIN_MAP(1,9)
#define LED3 NRF_GPIO_PIN_MAP(0,16)
void Init_Led(void)
{
nrf_gpio_cfg_output(LED0);
nrf_gpio_cfg_output(LED1);
nrf_gpio_cfg_output(LED2);
nrf_gpio_cfg_output(LED3);
}
void LED_On(uint32_t led_number)
{
nrf_gpio_pin_clear(led_number);
}
void LED_Off(uint32_t led_number)
{
nrf_gpio_pin_set(led_number);
}
void LED_TOGGLE(uint32_t led_number)
{
nrf_gpio_pin_toggle(led_number);
}
主函数
int main(void)
{
Init_Led();
LED_Off(LED0);
LED_Off(LED1);
LED_Off(LED2);
LED_Off(LED3);
while (1)
{
LED_On(LED1);
nrf_delay_ms(500);
LED_Off(LED1);
nrf_delay_ms(500);
// LED_TOGGLE(LED1); //等价上面语句
// nrf_delay_ms(500);
}
}
效果图
其他灯也类似,端口输出讲解完毕