这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » NUCLEO L053R8 边学边玩 (四) Mbed Blink 的庖丁解牛

共33条 1/4 1 2 3 4 跳转至

NUCLEO L053R8 边学边玩 (四) Mbed Blink 的庖丁解牛

专家
2015-11-12 20:08:27     打赏
老师说,帖子名字起的够高大上才能吸引人气。


在mbed站点上随便浏览,看到一篇文章

https://developer.mbed.org/handbook/mbed-library-internals

(叫啥好,mbed 库技术内幕?mbed库深入揭秘?那些做翻译的真不容易啊)


NND的,写了一堆内容发现自己看着都别扭,统统删掉

还是想哪写哪方便,白话文。



专家
2015-11-12 21:21:15     打赏
2楼

擦,插楼可耻



专家
2015-11-12 21:22:58     打赏
3楼

上图:


mbed 库的层次结构




专家
2015-11-12 21:23:45     打赏
4楼

用mbed API实现的blink


#include "mbed.h"
DigitalOut myled(LED1);

int main() {
    while(1) {
        myled = 1; // LED is ON
        wait(1); // 1 sec
        myled = 0; // LED is OFF
        wait(1); // 1 sec
    }
}

 



专家
2015-11-12 23:22:18     打赏
5楼
撸你个大头鬼

专家
2015-11-12 23:30:56     打赏
6楼

擦,一晚上乱七八糟的事

明天继续更新


专家
2015-11-13 11:40:01     打赏
7楼
继续更新

专家
2015-11-13 11:43:53     打赏
8楼

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);
    }
}


专家
2015-11-13 11:54:43     打赏
9楼

那么对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


专家
2015-11-13 11:55:54     打赏
10楼

那么GPIOA相关的寄存器都有哪些呢?

地址又是多少呢?



共33条 1/4 1 2 3 4 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]