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

共33条 2/4 1 2 3 4 跳转至
专家
2015-11-13 11:57:56     打赏
11楼

专家
2015-11-13 11:58:20     打赏
12楼

为嘛图片都变性了呢?

愁死了


专家
2015-11-13 11:59:37     打赏
13楼

从上图可以看出

IOPORT的地址是0x5000 0000 至 0x5000 1FFFF

然而这并没有什么鸟用



专家
2015-11-13 12:04:11     打赏
14楼

经过一番搜索,终于找到一个完整点的文档,1000多页啊


RM0367
Reference manual
Ultra-low-power STM32L0x3 advanced ARM®-based
32-bit MCUs


就是它,就不信找不到GPIO的寄存器信息


功夫不负有心人,铁杵终于磨成针


哇,好多寄存器。



专家
2015-11-13 12:12:15     打赏
15楼

研究了半天,原来是对应IOPORT中寄存器的地址 (偏移量)

就好比说我住2单元十楼2号,光知道这个信息,你找不到我

你还需要知道是哪个城市,哪个街道,哪个小区。


擦,可惜这事没法交给快递员去做

我慢慢找找



专家
2015-11-13 12:14:51     打赏
16楼

功夫不负有心人,铁杵终于磨成针

为嘛我感觉这句话很熟悉的样子,似乎哪个名人刚刚说过?


当当当当

虽然和之前的之前的那个图基本上差不多

不过这个更详细


专家
2015-11-13 18:22:02     打赏
17楼


专家
2015-11-13 18:32:28     打赏
18楼

也就是说,通过设置这组寄存器,可以达到设置或者重设ODx bit


和我平时理解的稍微有些差异

我以为设置,那么就置一,重置呢就置零(再不解放台湾,志玲就老了)

实际上呢,设置是把 Port x set bit y 置一

重置呢是把Port x reset bit y 置零


再回头看mbed官网连接中的这个程序:

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

 

对于我们来讲:
portA_set 的地址为:0x5000 0000 + 0x18

portA_reset 的地址同样为:0x5000 0000 + 0x18

与例子中使用的MCU还是有所差异的



专家
2015-11-13 18:39:44     打赏
19楼
仿照这个例子:

我们重写个blink for Nucleo L053R8


#include <mbed.h>
DigitalOut myled(LED1);

int main() {
	
		unsigned int mask_pin5 = 1 << 5; 
    volatile unsigned int *porta_set = (unsigned int *)0x50000018;
    volatile unsigned int *porta_clr = (unsigned int *)0x50000018;

    while (true) {
        *porta_set |= mask_pin5;
        wait(0.5);
        
        *porta_clr |= (mask_pin5 << 16);
        wait(0.5);
    }
}

 


下到Nucleo L053R8中,是不是开始闪烁啦?

真好玩啊真好玩



专家
2015-11-13 18:42:42     打赏
20楼

编辑了一下代码,结果彻底变成乱码了。

这事太恐怖了。

但愿我辛苦写的东西别都丢掉鸟。


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

回复

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