Blynk Led STM32 Libopencm3
STM32 Libopencm3 library Book : HỌC STM32 Libopencm3 book các hàm thư viện( Click vào học - tiếng việt ).
Phần 1: Cài đặt vscode.
Bước 1: Tải Và cài đặt VSCODE.
https://code.visualstudio.com/download
Bước 2: Sau khi cài đặt VsCode, bạn cần cài đặt thêm PlatformIO.
nhấn CRL+ SHIFT + X Hiện ra ô search tìm PlatformIO.
Sau khi cài đặt xong !
Bước 1: TẠO PROJECT MANG TÊN : STM32-LIBO-BLYNK Như sau.
Bước 2: Trong SRC TẠO main.c ( viết code ở đây).
Click chuột phải vào SRC rồi làm như phía dưới nhé.
Đoạn code Blynk như sau:
#include <libopencm3/stm32/rcc.h>#include <libopencm3/stm32/gpio.h>#include <stdint.h>#define RCCLEDPORT (RCC_GPIOC)#define LEDPORT (GPIOC)#define LEDPIN (GPIO13)#define GPIO_MODE_OUTPUT GPIO_MODE_OUTPUT_2_MHZ#define GPIO_PUPD_NONE GPIO_CNF_OUTPUT_PUSHPULLstatic void gpio_setup(void){/* Enable GPIO clock. *//* Using API functions: */rcc_periph_clock_enable(RCCLEDPORT);/* Set pin to 'output push-pull'. *//* Using API functions: */#ifdef STM32F1gpio_set_mode(LEDPORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LEDPIN);#elsegpio_mode_setup(LEDPORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LEDPIN);#endif}int main(void){int i;gpio_setup();/* Blink the LED on the board. */while (1) {/* Using API function gpio_toggle(): */gpio_toggle(LEDPORT, LEDPIN); /* LED on/off */for (i = 0; i < 1000000; i++) { /* Wait a bit. */__asm__("nop");}}return 0;}
Giải thích code:
Trong GPIO_SETUP().
rcc_periph_clock_enable(RCCLEDPORT);
- Bạn đang sử dụng Led PC13 Để blynk ( nhấp nháy), bạn phải cấp clock cho nó.
#define RCCLEDPORT (RCC_GPIOC)
- gpio_set_mode(LEDPORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LEDPIN);
*Cấu hình GPIO : LEDPORT : PORT C.
* GPIO_MODE_OUTPUT : CHỨC NĂNG OUT_PUT.
* GPIO_PUPD_NONE : PULL_UP_DOW không có.
* LEDPIN : LED PC13
Tóm lại : Có nghĩa là cấu hình gpio PORTB_ CHÂN SỐ 13 Là outputs_ không pullup hay down.
HÀM TRONG CODE :
Hàm 1 gpio_toggle: đảo trạng thái gpio (0 thành 1 và 1 thành 0).
gpio_toggle(uint32_t gpioport, uint16_t gpios )
giải thích :
Hàm gpio_toggle : đảo trạng thái gpio.
Có thể viết thành :
gpio_toggle(Tên PORT,Chân của Port)
VD: Bạn muốn nhấp nháy LED PC_13 trên Bluepill bạn ghi như sau:
gpio_toggle(GPIOC,GPIO13)
** Vòng FOR(i=0;i <1000 0000; i++) // ứng với delay 1s.