#include "mbed.h" int main() { printf("LPC_GPIO1->FIOSET: %p\n", &LPC_GPIO1->FIOSET); }
我们也用Nucleo L053R8测试一下:
打印出来的内容:
GPIOA->BSRR: 50000018
与我们上文分析出来的地址以及我们重写的blink中的地址一样一样的。
看来没搞错,没出丑
接下来用这个再重写blink
官网上的例子:
Blinky example using CMSIS-CORE
Let's see how to blink an LED on our LPC1768 mbed using the CMSIS-CORE API:
#include "mbed.h" // Reuse initialization code from the mbed library DigitalOut led1(LED1); // P1_18 int main() { unsigned int mask_pin18 = 1 << 18; while (true) { LPC_GPIO1->FIOSET |= mask_pin18; wait(0.5); LPC_GPIO1->FIOCLR |= mask_pin18; wait(0.5); } }
我们用NUCLEO L053R8实现的类似代码:
#include <mbed.h> DigitalOut myled(LED1); int main() { unsigned int mask_pin5 = 1 << 5; while (true) { GPIOA->BSRR |= mask_pin5; wait(0.5); GPIOA->BSRR |=(mask_pin5 << 16); wait(0.5); } }
下到板子里,哇,小灯闪闪。