• stm32 软件开发流程总结


    1. 建立工程模板

    • 建相关文件 夹, 添加库文件
    • 配置系统宏定义和头文件包含路径
    • mdk 软件配置

    2. 配置系统时钟

    系统时钟是整个系统运行的三要素之一(还有电源、复位),
    这里主要配置 分频系数M、P 倍频系数 N

    3. 测试系统时钟

    配置完系统时钟,还要验证一下时钟是否是我们所期望的,这里提供几种方法,仅供参考:

    • 查看变量 SystmeCoreClock 的值
    • 通过硬件仿真查看

    内部时钟存在偏差,可通过修改校准寄存器的值修正,以下是修正前后从mco时钟输出引脚测得的内部高速时钟频率

    修正前:

    修正后:

    4. 配置系统打印调试串口

    嵌入式平台由于资源的限制,一般没有显示设备,所以通常通过串口调进行调试

    5. 看门狗

    • 在后台主循环里加入 喂狗操作,可防止程序死循环,因得不到及时喂狗,导致程序复位
    • 在中断里加入喂狗操作(喂狗间隔时间一定要长于主循环里的喂狗时间),防止中断意外关闭

    6. RTC

    RTC可以为系统提供时间信息, 定时中断(唤醒)

    7. GPIO 口操作

    GPIO 操作流程:
    1) 打开外设端口时钟 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
    2) 填充 GPIO_Init_TypeDef 结构体
    3) 调用Gpio_Init() 配置端口

    注意 :调用Gpio_Init() 函数之前必须先打开外设端口时钟

    8. 定时器

    • 定时器实现精确定时
    • 脉冲计数
    • pwm脉冲

    9. 中断

    中断是前后台系统运行的关键, 可提高程序的响应能力
    中断编写注意事项:

    10. I2C

    I2C是系统重要的内部总线,用于连接mcu和片上其他外设,只需2根线即可实现数据通讯

    11. SPI

    SPI是高速的内部总线

    12. 搭建系统框架

    裸机程序规模增大之后,如果不搭建一个合适的系统框架,系统维护和扩展将会是一件棘手的工作,
    常见的系统框架如下:
    1)时间片轮询系统
    2)基于消息轮询的系统
    3)转态机

    13. 面向对象的思想编程

    用结构体实现封装
    结构体成员变量表示属性
    结构体 函数指针 成员变量表示方法

    14. 面向接口的编程

    面向接口的编程有如下优点:

    • 高内聚,低耦合
    • 提高系统的可扩展性和可维护性
    • 为实现分层提供了有力的保障
  • 相关阅读:
    JQuery的摸索之路(一)
    C#操作excel(NPOI篇)
    Mschart学习(MSchart介绍)
    JQuery的摸索之路(二比较)
    Mschart学习(开篇)
    Mschart学习(官方demo共享)
    SQL进阶提升(疑惑篇order by)学习sql server2005 step by step(十一)
    一步一步学习C#(二C#基础)
    NickLee的学习
    Linux 命令学习一
  • 原文地址:https://www.cnblogs.com/fengyang66/p/7940711.html
Copyright © 2020-2023  润新知