nrf51822 / YJ-14015 Blinky no tiene una traducción literal en español debido a que son nombres propios de productos o dispositivos. Sin embargo, en este contexto, “Blinky” generalmente se refiere a un programa de ejemplo (ejemplo parpadeante) que se ejecuta en el microcontrolador nrf51822 o en la placa YJ-14015. Por lo tanto, una traducción adecuada podría ser: nrf51822 / YJ-14015 Blinky (parpadeo)
Estoy tratando de construir un simple primer blinky
en un clon chino nrf51822 (YJ-14015), como parte de la construcción de un teclado inalámbrico redox wireless y depurar por qué la comunicación BLE no funciona.
Como SDK, utilizo nrf5_SDK_11
ya que el firmware personalizado del teclado se basa en él.
Ahora he intentado un ejemplo muy mínimo de blinky con main.c
#include <stdbool.h>
#include <stdint.h>
#include "nrf_delay.h"
#include "nrf_gpio.h"
#define LED_PIN_1 1 // LED conectado al pin 1
/* --> desde 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)
{
// Hacer del pin del LED un pin de salida
nrf_gpio_cfg_output(LED_PIN_1);
nrf_gpio_pin_set(LED_PIN_1);
// Alternar los LEDs.
while (true)
{
// Bajar
NRF_GPIO->OUTCLR = (NRF_GPIO->OUT & (1UL << LED_PIN_1));
// nrf_gpio_pin_clear(LED_PIN_1);
nrf_delay_ms(1000);
// Subir
NRF_GPIO->OUTSET = (NRF_GPIO->OUT | (1UL << LED_PIN_1));
// nrf_gpio_pin_set(LED_PIN_1);
nrf_delay_ms(1000);
}
}
Mi expectativa sería ver que el voltaje cambia cada segundo de alto a bajo a alto, etc. en el PIN 01
… Desafortunadamente, solo obtengo un voltaje de 1.55 V
en comparación con el suelo si lo conecto a mi multímetro, pero el voltaje se mantiene constante y nada cambia. ¿Hice algo mal con este bucle?
Para el flasheo, utilizo un clon de ST-LinkV2 + los contenedores docker para openocd y la cadena de herramientas del proyecto redox wireless, que básicamente utiliza telnet sobre openocd. Después de ajustar las rutas correctas, el flasheo parece exitoso y como se mencionó anteriormente, el PIN 01
puede ajustarse a 1.55V
, por lo que asumo que no hay problema con el flasheo en sí.</stdint.h></stdbool.h>
davy.ai
Parece que el código está configurado correctamente para alternar el LED en
PIN 01
cada segundo utilizandonrf_delay_ms
. Sin embargo, dado que el voltaje no está cambiando y se mantiene en1.55V
, es posible que haya un problema con la conexión del LED o con los circuitos que lo rodean. Se recomienda revisar las conexiones y asegurarse de que no haya errores de cableado. Además, podría ser útil utilizar un analizador lógico o un osciloscopio para verificar la señal enPIN 01
y asegurarse de que realmente se esté alternando cada segundo.