Bonjour à tous,
Certains se demande comment faire fonctionner ce nouveau processeur avec l'IDE Arduino.
Voici un petit exemple pour vous mettre sur la voie.
Dans l'IDE ajouter dans les préférence le lien vers le SDK (fichier ".json")
dans URL de gestionnaire de cartes supplémentaires:
"https://cdn.jsdelivr.net/gh/Hi-LinkDuino/w80x_arduino/package_w80x_index.json"
Voici un code de test :
#include <stdio.h>
#include <Arduino.h>
static volatile uint8_t key_flag = -1;
static void GPIO_Init(void) {
// Déclaration et initialisation des ports/pins GPIO utilisés
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = GPIO_PIN_5 | GPIO_PIN_25 | GPIO_PIN_26 | GPIO_PIN_18 | GPIO_PIN_17 | GPIO_PIN_16 | GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5 | GPIO_PIN_25 | GPIO_PIN_26 | GPIO_PIN_18 | GPIO_PIN_17 | GPIO_PIN_16 | GPIO_PIN_11, GPIO_PIN_SET);
}
void setup() {
// mettre le code d'installation ici, à exécuter une fois :
printf("Led Demo Blink\r\n");
GPIO_Init();
}
void loop() {
// mettre le code principal ici, à exécuter en boucle :
HAL_Delay(200);
key_flag++;
if (key_flag == 0) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, (GPIO_PinState)0);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_25, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_26, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_18, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_17, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_16, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, (GPIO_PinState)1);
} else if (key_flag == 1) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_25, (GPIO_PinState)0);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_26, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_18, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_17, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_16, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, (GPIO_PinState)1);
} else if (key_flag == 2) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_25, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_26, (GPIO_PinState)0);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_18, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_17, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_16, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, (GPIO_PinState)1);
} else if (key_flag == 3) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_25, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_26, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_18, (GPIO_PinState)0);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_17, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_16, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, (GPIO_PinState)1);
} else if (key_flag == 4) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_25, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_26, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_18, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_17, (GPIO_PinState)0);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_16, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, (GPIO_PinState)1);
} else if (key_flag == 5) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_25, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_26, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_18, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_17, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_16, (GPIO_PinState)0);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, (GPIO_PinState)1);
} else if (key_flag == 6) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_25, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_26, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_18, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_17, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_16, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, (GPIO_PinState)0);
} else if (key_flag == 7) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_25, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_26, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_18, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_17, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_16, (GPIO_PinState)0);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, (GPIO_PinState)1);
} else if (key_flag == 8) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_25, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_26, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_18, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_17, (GPIO_PinState)0);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_16, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, (GPIO_PinState)1);
} else if (key_flag == 9) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_25, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_26, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_18, (GPIO_PinState)0);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_17, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_16, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, (GPIO_PinState)1);
} else if (key_flag == 10) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_25, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_26, (GPIO_PinState)0);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_18, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_17, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_16, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, (GPIO_PinState)1);
} else if (key_flag == 11) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_25, (GPIO_PinState)0);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_26, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_18, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_17, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_16, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, (GPIO_PinState)1);
key_flag = -1;
}
}
/* END */