博客
关于我
在MDK5中新建STM32F4XX工程模板(基于固件库)
阅读量:774 次
发布时间:2019-03-24

本文共 1535 字,大约阅读时间需要 5 分钟。

库函数和寄存器的区别

本质上,库函数和寄存器都是用于控制芯片外设的工具。库函数通过函数调用提供接口,方便开发者操作特定的外设,而寄存器则是底层硬件直接控制的分担存储器单元。两者在操作外设时都能达到类似的效果,但性能特性存在差异。需要注意的是:寄存器操作通常只能通过ASM代码实现,而库函数则需要通过C语言API调用。

寄存器的理解至关重要。深入理解寄存器的工作原理,能帮助开发者快速定位和解决硬件配置问题,因为寄存器是调试过程中最直接的操作对象。


所用到的工具

开发环境:MDK5

固件库版本:V1.4(F4专用)
固件库下载地址:[官方下载链接](https://www.st.comtools stm32工具包)


新建工程模板

新建工程模板的具体步骤如下:

  • 创建文件夹结构:建立根目录Template,再创建子文件夹CORE、FWLIB、OBJ、SYSTEM、USER。这些文件夹名可任意命名,方便识别。

  • 选择芯片型号:在MDK中完成项目设置,选择芯片型号STM32F407ZG。

  • 复制固件库文件:将固件库中的src和inc文件复制到FWLIB文件夹,启动文件startup_stm32f40_41xxx.s复制至CORE。

  • 配置头文件路径:在MDK中手动添加头文件目录,确保头文件路径正确。添加路径如下:

    • CORE、USER、FWLIB\inc。
  • 添加特定头文件:在USER中添加必要的头文件,包括stm32f4xx.h和system_stm32f4xx.h。

  • Springconfiguration:打开system_stm32f4xx.c,修改PLL_M为8以达到系统时钟频率168MHz,并配置外部时钟HSE为8MHz。

  • payload<


    编码与调试

    在编码阶段,建议将main.c文件中的Delay函数实现如下:

    #include "stm32f4xx.h"void Delay(__IO uint32_t nCount){    while(nCount--)    {        /* delay单个周期 */    }}int main(void){    GPIO_InitTypeDef  GPIO_InitStructure;    // 配置GPIOF引脚为输出    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUTPP;    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;    GPIO_Init(GPIOF, &GPIO_InitStructure);    while(1)    {        GPIO_SetBits(GPIOF, GPIO_Pin_9 | GPIO_Pin_10);        Delay(0x7FFFFF); // 偽Wait 0.5秒        GPIO_ResetBits(GPIOF, GPIO_Pin_9 | GPIO_Pin_10);        Delay(0x7FFFFF);    }}

    注意事项

  • 移除无用文件:删除stm32f4xx_it.c中的函数调用和主函数内容。
  • 处理编译问题:如果发现stm32f4xx_it.c文件左边缺少加号,切断并重新启动工程即可。

  • 该工程模板基于官方固件库V1.4配置完成,适合STM32F40xx系列芯片使用。

    转载地址:http://sbdkk.baihongyu.com/

    你可能感兴趣的文章
    python初步学习-python数据类型-集合(set)
    查看>>
    python列表生成字典_Python中将字典转换为列表的方法
    查看>>
    python列表对应元素合并为列表及判断一个列表是几维
    查看>>
    python列表去重复后按照顺序_从包含不可共元素的Python列表中删除重复元素,同时保留顺序?...
    查看>>
    python列表前几个_python之列表
    查看>>
    python列表元组
    查看>>
    Python列表/元组/字典和集合使用
    查看>>
    python列表 行列选择_python_pandas_dataframe_行列选择_切片操作
    查看>>
    python列表
    查看>>
    python列出当前目录、子目录和文件的脚本
    查看>>
    python+flask计算机毕业设计骨科门诊患者档案管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校体测管理系统的设计与实现(程序+开题+论文)
    查看>>
    Python切片对象和__getitem__
    查看>>
    python+flask计算机毕业设计高校体育竞赛成绩管理系统的设计与实现(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校体育赛事系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校体育运动会比赛系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校危化品管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校团委事务管理系统(程序+开题+论文)
    查看>>
    Python切片(%s)
    查看>>
    python+flask计算机毕业设计高校学生选课系统(程序+开题+论文)
    查看>>