在mbed站点上随便浏览,看到一篇文章
https://developer.mbed.org/handbook/mbed-library-internals
(叫啥好,mbed 库技术内幕?mbed库深入揭秘?那些做翻译的真不容易啊)
NND的,写了一堆内容发现自己看着都别扭,统统删掉
还是想哪写哪方便,白话文。
mbed的文章中是以LPC17xx的blink为例进行的说明
从LPC17xx datasheet中查询到对应的GPIO的寄存器地址
然后对对应寄存器进行set或者clear操作,从而实现点灯灭灯
#include "mbed.h" // Reuse initialization code from the mbed library DigitalOut led1(LED1); // P1_18 int main() { unsigned int mask_pin18 = 1 << 18; volatile unsigned int *port1_set = (unsigned int *)0x2009C038; volatile unsigned int *port1_clr = (unsigned int *)0x2009C03C; while (true) { *port1_set |= mask_pin18; wait(0.5); *port1_clr |= mask_pin18; wait(0.5); } }
那么对Nucleo L053R8而言
我们首先需要知道的是板载LED连接到哪个GPIO
在ST的文档中我们找到这样一段话:
LEDs
The tricolor LED (green, orange, red) LD1 (COM) provides information about ST-LINK communication status. LD1 default color is red. LD1 turns to green to indicate that communication is in progress between the PC and the ST-LINK/V2-1, with the following setup:
?Slow blinking Red/Off: at power-on before USB initialization
?Fast blinking Red/Off: after the first correct communication between the PC and STLINK/
V2-1 (enumeration)
?Red LED On: when the initialization between the PC and ST-LINK/V2-1 is complete
?Green LED On: after a successful target communication initialization
?Blinking Red/Green: during communication with target
?Green On: communication finished and successful.
?Orange On: Communication failure
User LD2: the green LED is a user LED connected to Arduino signal D13 corresponding to MCU I/O PA5 (pin 21) or PB13 (pin 34) depending on the STM32 target. Please refer to Table 10 to Table 21.
?When the I/O is HIGH value, the LED is on.
?When the I/O is LOW, the LED is off.
LD3 PWR: the red LED indicates that the MCU part is powered and +5V power is available.
有这个图可以看出,这个LED连接至D13, PA5