爱板网论坛

查看: 170|回复: 0

[中移One NET] 在板子上跑基础例程--流水灯

[复制链接]

6

主题

0

好友

101

积分

童生

Rank: 2

  • TA的每日心情

    2017-10-29 14:17
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2017-8-20 23:27:30 |显示全部楼层
    在学习基础例程前,我给板子添加了1个复位开关。根据麒麟mini板原理图可知,提供有复位电路,但是没有接按键,所以准备外接一个按键,起复位用,这样不必每次都得通过按开关按键来热启动板子。
    复位电路.jpg
        复位按键.jpg

                                   1-1     原理图                                         2-1   实物图

    另外,为了在SRAM中调试板子(我习惯这么做了,虽然FLASH号称支持百万次的擦除)
    我将其内存设置16K用做FLASH4K用做内存使用。具体设置可以自行问度娘“STM32 RAM 调试”)

    学习第一个基础例程 流水灯,虽然我个人对stm32库函数编程,比较熟悉,但是不同风格(原子哥的、野火的等)下的库函数编程,还是需要花费些时间习惯的。

    麒麟座mini板的编程风格,就和之前的不同了,首先对LED灯的操作,就采用面向对象的思想进行了封装
    typedef struct
    {        _Bool Led2Sta;
            _Bool Led3Sta;
            _Bool Led4Sta;
            _Bool Led5Sta;
    } LED_STATUS;


    typedef enum
    {        LED_OFF = 0,
            LED_ON
    } LED_ENUM;
    LED灯---确实对于它来说就2个状态:开和关。

    对其操作也是,和我个人习惯不一样,我就是直白的GPIO_SetBitsGPIO_ResetBits
    而麒麟座mini板的编程风格则是GPIO_WriteBit(GPIOB, GPIO_Pin_6, status != LED_ON ? Bit_SET : Bit_RESET);
                                                    ledStatus.Led2Sta = status;
    到底哪个好,说不清?希望有人能给我指教。

    另外,对于DelayXms(500) 这句话,按字面和注释是延时500ms,但是经过测试这个延时有5s
    应该改为DelayMs(500),才对。
    进到其内部查看,其采用的非中断方式进行延时,个人觉得不好,准备改为中断方式。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /2 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-11-22 15:27 , Processed in 0.158735 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部