最近在学nrf51822这个板子,下载程序点灯啥的零零碎碎弄了一天……例程blinky_example中包含了gpio.h和delay.c
看main.c之前我先看了这两个,例程里应用了一个简单不精确的延时函数,用循环内延时微秒函数实现延时毫秒,挺有意思的……
void nrf_delay_ms(uint32_t volatile number_of_ms)
{
while(number_of_ms != 0)
{
number_of_ms--;
nrf_delay_us(999);
}
}
然后gpio.h里包含初始化port和pin,设置output,input,写入读取等函数。
下面是main函数
int main(void)
{
uint8_t output_state = 0;
// Configure LED-pins as outputs
nrf_gpio_range_cfg_output(LED_START,LED_STOP);
while(true)
{
nrf_gpio_port_write(LED_PORT, 1 << (output_state + LED_OFFSET));
output_state = (output_state + 1) &STATE_MASK;
nrf_delay_ms(100);
}
}
LED_OFFSET=2,也就是说nrf_gpio_port_write()
这个函数的初