我正在尝试在nrf51822 中国克隆 (YJ-14015)blinky
上构建一个简单的第一个,作为构建氧化还原无线和调试 BLE 通信为何不起作用的一部分。
作为我使用的键盘自定义固件的 SDKnrf5_SDK_11
是基于它的。
现在我尝试了一个非常小的例子main.c
#include <stdbool.h>
#include <stdint.h>
#include "nrf_delay.h"
#include "nrf_gpio.h"
#define LED_PIN_1 1 // LED connected to pin 1
/* --> from nrf5_SDK_11/components/drivers_nrf/hal/nrf_gpio.h
__STATIC_INLINE void nrf_gpio_pin_set(uint32_t pin_number)
{
NRF_GPIO->OUTSET = (1UL << pin_number);
}
__STATIC_INLINE void nrf_gpio_pin_clear(uint32_t pin_number)
{
NRF_GPIO->OUTCLR = (1UL << pin_number);
}
*/
int main(void)
{
// Make LED pin an output pin
nrf_gpio_cfg_output(LED_PIN_1);
nrf_gpio_pin_set(LED_PIN_1);
// Toggle LEDs.
while (true)
{
// Down
NRF_GPIO->OUTCLR = (NRF_GPIO->OUT & (1UL << LED_PIN_1));
// nrf_gpio_pin_clear(LED_PIN_1);
nrf_delay_ms(1000);
// Up
NRF_GPIO->OUTSET= (NRF_GPIO->OUT | (1UL << LED_PIN_1));
// nrf_gpio_pin_set(LED_PIN_1);
nrf_delay_ms(1000);
}
}
我的期望是我可以看到电压每秒从高到低再到高等等PIN 01
……不幸的是1.55 V
,如果我将它连接到我的万用表上,我只会得到一个 vs 接地,但电压只是保持恒定,没有任何变化. 我在这个循环中做错了什么吗?
对于闪烁,我使用 ST-LinkV2 克隆+ openocd 的 docker 容器和redox 无线项目的工具链,它基本上使用 telnet 而不是 openocd。调整正确路径后,闪烁似乎成功,如上所述,PIN 01
可以设置为1.55V
,所以我认为闪烁本身没有问题。