查看: 3126|回复: 0

在板子上跑基础例程--流水灯

[复制链接]
  • TA的每日心情
    开心
    2019-6-20 14:08
  • 签到天数: 43 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 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),才对。
    进到其内部查看,其采用的非中断方式进行延时,个人觉得不好,准备改为中断方式。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-5-9 08:43 , Processed in 0.109185 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.