0

我正在尝试在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,所以我认为闪烁本身没有问题。

4

1 回答 1

0

如果其他人遇到同样的困难:

过了一会儿,我想出了一种方法来修复blinky. yj-14015关键是根据氧化还原固件中的MakefileMakefile调整我从nordic SDK中获取的内容。

相关行如下:

#flags common to all targets
CFLAGS  = -DNRF51
CFLAGS += -DGAZELL_PRESENT
CFLAGS += -DBOARD_CUSTOM
CFLAGS += -DBSP_DEFINES_ONLY
CFLAGS += -mcpu=cortex-m0
CFLAGS += -mthumb -mabi=aapcs --std=gnu99
CFLAGS += -Wall -Werror -O3 -g3
CFLAGS += -Wno-unused-function
CFLAGS += -Wno-unused-variable
CFLAGS += -mfloat-abi=soft
# keep every function in separate section. This will allow linker to dump unused functions
CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing
CFLAGS += -fno-builtin --short-enums


# Assembler flags
ASMFLAGS += -x assembler-with-cpp
ASMFLAGS += -DNRF51
ASMFLAGS += -DGAZELL_PRESENT
ASMFLAGS += -DBOARD_CUSTOM
ASMFLAGS += -DBSP_DEFINES_ONLY

这将是完整的Makefile

于 2022-01-02T19:05:58.023 回答