zoukankan      html  css  js  c++  java
  • STM32:预备知识

    1, 方法论

      学习STM32的时候需要参考什么资料,应该怎么查找呢?先了解一下大致的框架再系统学习,就算以后忘记很多概念了,重拾起来也容易把;

      1.1 F10XXX中文参考手册:包含寄存器的详细信息,技术参考手册;主要是各种外设的参考信息;

      1.2 Cortex-M3 技术参考手册:关于Cortex-M3核心、SysTick定时器和NVIC的详细说明;

      1.3 Cortex-M3 编程手册:关于Cortex-M3核心、SysTick定时器和NVIC等内核外设的详细说明;主要是内核功能的信息;

      1.4 Cortex-M3 权威指南:对底层及ARM架构的分析,包含部分底层汇编说明;主要参考cortex-xx编程手册;

      1.5 芯片数据手册:芯片功能框架图,地址映射,引脚复用,芯片型号的具体解释;

      1.6 对于stm32相关的参考资料,在官网搜型号,然后点进去即可看到;cube的话直接搜cube,hal库和cmsis软件接口标准包含在STM32CubeH7中;

    2 STM32官方提供的库

      STM32官方提供了两种方便底层开放的库,分别是标准库和HAL库;HAL库逐渐取代了标准库的使用;

      后来估计觉得库的效率也很慢,提供了cubeMX来配置HAL库开发;

      2.1 STM32标准库:STM32F10x_StdPeriph_Lib_V3.5.0.zip

        解压后,project目录下为ST官方评估板的例程;Libraries目录下为Cortex-M3的内核代码;我们只需要使用Libraries目录下的文件;

      2.2 Cortex-M3内核的代码架构;

        CMSIS全称Cortex-M3 software interface standard,是API接口标准;

        Libraries目录下的内核代码,将底层寄存器操作封装成API函数,函数符合CMSIS标准的格式;

    3 新建KEIL5工程

       keil界面设置:edit->configuration-> editor-> [Encoding:GB2312]  [Tabsize:4]->其他酌情设置;

      3.1 磁盘新建文件夹,从固件库复制各种文件过来

        3.1.1 CORE:用来存放xx_cm3.c内核文件,xx.s启动文件,还有每种芯片自己的xx.h和xx.c文件;

               不用修改,但是每次代码运行的时候都会需要启动文件来配置内存,代码起始位置等等;还是比较重要的;

               配置错误报错举例:error: L6236E: No section matches selector - no section to be FIRST/LAST.(未加入xx.s文件)

        3.1.2 USER:主要是main.c

        3.1.3 HAL:官方hal库,如果用标准库那就命名为FIRM;

        3.1.4 BSP:自己写的各种外设的例程统一放在这里;

      3.2 keil5新建project

        3.2.1 project -> new project -> 命名后保存在USER/workspace中->此时建立完成了keil5工程的框架;

      3.3 映射project到磁盘文件

        3.3.1 target右键->manage project items -> add group -> add file;添加.c文件和CORE目录下的配置文件(xx.h xx.s等)到工程中;

        3.3.2 target右键-> options for target -> C/C++ ->Include Paths添加头文件目录(keil不会递归查找);添加.h文件到工程中

      3.4 project配置

        3.4.1 启动文件的宏配置

           F1:target右键 -> options for target -> C/C++ -> Define: <   STM32F10X_HD,USE_STDPERIPH_DRIVER   >;

           H7:target右键 -> options for target -> C/C++ -> Define: <   USE_HAL_DRIVER, STM32H743xx   >;

        3.4.2 生成hex文件(../USER/objects/)

          target右键 -> options for target -> output -> √ create HEX file; 在 <output> 中可以设置生成的xxx.hex的name,也是xxx.axf的name;

        3.4.3 生成bin文件

          target右键 -> options for target -> user ->  <after build/rebuild> √ Run #1 -> 输入如下格式路径:

          D:MDK5SetupFileARMARMCCinfromelf.exe  --bin  -o  E:STM2_F1CreateDemoUSERObjectsdemo.bin  :STM32_F1CreateDemoUSERObjectscreateDemo.axf

      3.5 软件仿真

        3.5.1 target右键-> options for target -> Debug

            ->[• use simulator]  

            -> [左边的dialog DLL :DARMSTM.DLL  ]    [左边的parameter:-pSTM32F103ZE]   

            -> [右边的dialog DLL :TARMSTM.DLL   ]    [右边的parameter:-pSTM32F103ZE] 

        3.5.2 菜单栏 debug-> start/stop debug session  

        3.5.3 通过虚拟串口查看kei调试的串口;https://www.cnblogs.com/hiker-blogs/archive/2012/03/12/2392273.html

           mode com1 115200,0,8,1  :设置计算机的com1口为串口,后面的数据为串口的配置参数;

           assign com1 <s1in>s1out  :<s1in>s1out表示是单片机的串口1,assign com1表示将串口映射到com1上;

        3.5.4 KEIL5的GPIO仿真:(PORTA & 0X00000002)>>1:仿真输出portA的pin1引脚的值;

                    (PORTA & 0X00000004)>>2:仿真输出portA的pin2引脚的值;

      3.6 软件下载

        3.6.1 串口下载使用的软件是flymcu.exe;串口收发数据使用的是xcom.exe或sscom.exe;

          SWD无法下载的原因和解决办法(十分准确): https://www.cnblogs.com/qdrs/p/10574867.html

    4 零散知识

      (1)复用表示一个IO口有多个外设功能,通过复用来选择IO口的外设功能;

      (2)重映像就是重映射;就是把一个IO口的功能映射到另一个IO口上去;

      (3)1ul << 18 表示将无符号长整形的1左移18位,即第18位置1;

      (4) 使用memset( )需要包含头文件#include<string.h>;

      (4)STM32芯片型号说明,芯片的硬件信息还可以看选型手册和数据手册;

      

     5 软件安装

      5.1 对于keil-MDK而言,先安装keilXXX.exe,安装的是集成开发环境;然后安装pack包,安装的是对应器件的固件支持包;

      5.2 对于cubeMX而言,先安装cubemx软件;然后在cube软件中help>embedded...安装对应器件的pack包;

  • 相关阅读:
    .net 关于路径的总结
    asp.net Base64加解密
    asp.net中的<% %>,<%= %>,<%# %><%$ %>的使用
    asp.net Swiper 轮播动画
    ASP.NET中Literal控件的使用方法(用于向网页中动态添加内容)
    asp.net 获取表单中控件的值
    rgb值转换成16进制
    关于background全解
    移动端的性能陷阱
    原生JS实现雪花特效
  • 原文地址:https://www.cnblogs.com/caesura-k/p/12782223.html
Copyright © 2011-2022 走看看