stm32编程入门书籍_STM32开发板

stm32编程入门书籍_STM32开发板1.STM32需要了解的基础知识STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARMCortex®-M0,M0+,M3,M4和M7内核,按内核架构分为不同产品:主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)。内核是ARM公司统一设计的于ARMv7架构的Cortex系列由ARM公司在2006年推出,Co

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1. STM32需要了解的基础知识

STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex®-M0M0+M3, M4M7内核,按内核架构分为不同产品:主流产品(STM32F0STM32F1STM32F3)、超低功耗产品(STM32L0STM32L1STM32L4STM32L4+)、高性能产品(STM32F2STM32F4STM32F7STM32H7)。

内核是ARM公司统一设计的

stm32编程入门书籍_STM32开发板

ARMv7架构的Cortex系列由ARM公司在2006年推出,Cortex系列的推出满足人们对性能日渐复杂的设计要求,根据不同需求,Cortex系列共三个不同的子系列。Cortex-A系列主要面向一些复杂的应用,用来运行一些操作系统,运用到各类消费电子中;Cortex-R系列主要面向实时系统,运用到军事航天;Cortex-M系列主要面向微控制领域,为如今工业控制系统、微控制系统等对功耗和成本要求较高的嵌入式领域实现高性能低成本提供基础,对嵌入式系统编程进行了大大简化,可以说Cortex-M做到了集高性能、低功耗、低成本于一体

参考链接:stm32_百度百科 (baidu.com)

参考链接:【普中教程视频】STM32F4开发板(完整版)_哔哩哔哩_bilibili

参考链接:ARM(英国ARM公司)_百度百科 (baidu.com)

参考链接:STM32是什么?STM32简介/结构与应用 – 知乎 (zhihu.com)

参考链接:DSP与STM32的对比浅见(一)_lingcoln的博客-CSDN博客_dsp和stm32的区别

参考链接:DSP与STM32的对比浅见(二)_lingcoln的博客-CSDN博客_stm32与dsp

2. STM32的4个库

先给结论:从ST公司的发展方向和主推的库来讲,目前使用HAL是最正确的选择。

下面就来讲讲开发STM32的四种库:

  • STM32Snippets
  • Standard Peripheral Library
  • STM32Cube LL
  • STM32Cube HAL

参考链接:STM32四种库对比:寄存器、标准外设库、HAL、LL | 贸泽工程师社区 (eetrend.com)

2.1 STM32Snippets

STM32Snippets是高度优化的示例代码集合,使用符合CMSIS直接寄存器访问来减少代码开销,从而在各种应用程序中最大化STM32 MCUs的性能。每个STM32系列的100多个片段演示了如何以最小的内存占用有效地使用STM32外围设备。STM32Snippets目前官方只提供:STM32F0L0的示例代码包。参考链接:STM32Snippets – STMicroelectronics

2.2 Standard Peripheral Library

简写SPL,也叫标准外设库。是一组外围设备的C语言代码集合。(因为现在ST官方主推STM32CubeMX,所以停止了对SPL的更新),标准外设库是在寄存器的基础上进行了一次简单封装,主要是面向过程的嵌入式系统开发人员。目前标准外设库支持STM32F0 F1 F2 F3 F4 L1, 不支持F7、 H7、 MP1、L0、 L4、 L5、 G0、G4等后面推出的系列。所以,不要再问:在哪里下载L0的标准外设库了。参考链接:STM32 Standard Peripheral Libraries – STMicroelectronics

2.3 STM32Cube LL 和 HAL

LLLow-Layer,底层库

HALHardware Abstraction Layer,硬件抽象层库

STM32Cube HAL 和 LL配合STM32CubeMX工具对STM32进行开发。也是目前ST官方主推的一套开发STM32的库。HAL针对的是具有一定嵌入式基础的开发人员,HAL具有很好的移植性。LL库相对HAL,具有简单的结构,针对之前从事SPL(标准外设库),或寄存器开发的人员。STM32Cube HAL 和 LL是目前官方主推,并重点维护和更新的库,也建议大家都学习一下。而且新出来的型号(如L5、G4等系列)没有标准外设库,只有STM32Cube HAL 和 LL库了。参考链接:STM32CubeMX – STM32Cube initialization code generator – STMicroelectronics

3. 开发前的准备工作

3.1 软件

1.MDK 5 | (Keil uVision5) ARM内核架构的集成开发环境
2.Keygen.exe MDK 5激活成功教程工具,能支持到2032年。
3.Keil.STM32F4xx_DFP.2.16.0.pack

当我们安装好MDK 5后,想让MDK 5支持STM32F4xx芯片的开发,还要安装 STM32F4xx的器件支持包:Keil.STM32F4xx_DFP.2.16.0.packSTM32F4系列的器件包)。注意:这个支持包是ARM Keil公司提供的,不是ST公司提供的。安装了芯片支持包之后,在新建项目的时候,才能找得到对应的芯片信号。

4.STM32CubeMX

HAL库是和STM32CubeMX配合使用的,STM32CubeMX软件可提供图形化的操作,在配置完之后,可最终生成一个项目框架。此时项目框架里已经包含了系统各种外设的初始化配置代码,即使会降低代码的运行效率,但这一点真的太香了

5.仿真器驱动(我们使用ST-LINK) 不必多说,没安装仿真器驱动,系统无法识别仿真器,无法下载程序,没法儿玩。

同目录下:02_软件安装包.rar里。

3.2 硬件

仿真器 + 电路板(包含芯片的开发板 | 公司或自己设计的电路板)

3.3 资料

1. 电路板原理图

2. 芯片对应的 Reference manual + Datasheet (这个如果用外设库SPL编程应该用的多,但是用STM32CubeMX编程的话,应该用的不多)

3. 电路板使用的其它芯片资料

同目录下:

4 从零开始完成第一个程序

先说明一下,由于板子是公司开发的,第一个程序就不点灯了,改成实现串口通信吧。

4.1 首先使用STM32CubeMX生成项目框架

截图Warning! 截图 Warning! 截图warning!

stm32编程入门书籍_STM32开发板

stm32编程入门书籍_STM32开发板

首先选RCC,把系统时钟一配置。

stm32编程入门书籍_STM32开发板

 stm32编程入门书籍_STM32开发板

 stm32编程入门书籍_STM32开发板

 stm32编程入门书籍_STM32开发板

 stm32编程入门书籍_STM32开发板

stm32编程入门书籍_STM32开发板

stm32编程入门书籍_STM32开发板

stm32编程入门书籍_STM32开发板

stm32编程入门书籍_STM32开发板

 stm32编程入门书籍_STM32开发板

 网上讲的,有些设置要设置一下

stm32编程入门书籍_STM32开发板

stm32编程入门书籍_STM32开发板

4.2 串口代码

添加代码只需三行,功能就是每隔1000ms通过串口发送0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07 8个字节。

int main(void)
{
  /* USER CODE BEGIN 1 */
    uint8_t data[8] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07}; // 这行是添加的
  /* USER CODE END 1 */
… 省略 …

/* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
        HAL_UART_Transmit(&huart1,data,8,10); // 这行是添加的
        HAL_Delay(1000);
      /* USER CODE BEGIN 3 */
  }
/* USER CODE END 3 */

4.3 烧写代码流程

stm32编程入门书籍_STM32开发板

 4.4 运行结果

stm32编程入门书籍_STM32开发板

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/196332.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Tips–解决BeatsX开机白灯闪三下无法连接问题(附拆机教程)[通俗易懂]

    Tips–解决BeatsX开机白灯闪三下无法连接问题(附拆机教程)[通俗易懂]解决BeatsX开机白灯闪三下无法连接问题(附拆机教程)问题描述解决方法BeatsX拆机教程问题描述BeatsX耳机用了有一年左右,但是突然有一天,开机的时候只有白灯闪三下,然后连接不上蓝牙,即使重启也没有办法。这个问题困扰了很久,我一度以为是因为里面的固件出了问题,然后在官网刷固件的时候发现固件是最新的无法在刷了,也因此意外收获了修改beatsX名字的方法,哈哈,算是因祸得福吧。最后通过咨…

  • 一行脚本实现远程开机

    一行脚本实现远程开机出差在外,想远程家里的电脑,却关机了,怎么办?

  • Python读取文件时出现UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position xx: 解决方案[通俗易懂]

    Python读取文件时出现UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position xx: 解决方案[通俗易懂]Python在读取文件时withopen(‘article.txt’)asf:#打开新的文本text_new=f.read()#读取文本数据出现错误:UnicodeDecodeError:’gbk’codeccan’tdecodebyte0x80inposition145:illegalmultibytesequence此…

  • 如何安装HAXM,如何解决HAXM installation failed问题

    如何安装HAXM,如何解决HAXM installation failed问题如何安装HAXM,如何解决HAXMinstallationfailed问题在安卓开发的过程中,大家都会需要用到安卓虚拟设备,在AndroidStudio中运行虚拟设备要求安装Intel硬件加速器(HAXM),虽然说是推荐使用但实际上不安装就无法运行虚拟设备。按照AndroidStudio提示的步骤安装HAXM,大多数人都会遇到HAXMinstallationfailed.ToinstallHAXMfollowtheinstructionsfoundat:https://so

  • 高级java面试题及答案_java高级面试题大汇总

    高级java面试题及答案_java高级面试题大汇总一、参考资料不容错过的Java高级面试题_帝都的雁的博客-CSDN博客_java高级面试题java面试题汇总(上)_Oliverfly1的博客-CSDN博客_java面试题史上最全的中高级JAVA工程师面试题汇总有哪些?-知乎DevBooks:2021面试题,Java面试题、JVM面试题、多线程面试题、并发编程、设计模式面试题、SpringBoot面试题、SpringCloud面试题、MyBatis面试题-Gitee.com2021年Java高级面试题总结_m0_57699

  • 深圳易速马网络科技有限公司_动易网络

    深圳易速马网络科技有限公司_动易网络纵观现如今国内CMS程序,大有百花争艳的感觉,随着企业建站需求的复杂度和功能的不断扩展,传统的三五个人写一段代码即告网站建已经行不通,于是以内容管理为应用核心的CMS产品大行其道。  这些CMS系统大体上基于两套框架编写:PHP+MySQL和.NET+MSSQL。在PHP中比较有名的就有DeDeCMS、PHP168、帝国CMS、Supesite等,在.NET方面就有zoomla!CMS、

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号