STM32F407 - 01

news2024/12/23 2:43:05

嵌入式概述

什么是嵌入式?嵌入式是以应用为中心,以计算机技术为基础 硬件可裁剪 适用于对体积 可靠性 功耗 性能等方面有着严格的专用计算机系统

简单来说 除了处理桌面PC和服务器之外所有的控制类设备都是嵌入式.

通用计算机和专用计算机的区别 两者的区别在于技术的发展和要求 通用计算机则是要求处理大量高效的数据而技术的要求则是总线速度的提升以及储存的拓展. 专用计算机要求可控制化 技术发展则是对可靠性进行提升

嵌入式的特点

硬件特点:

                体积小 集成效率高

                低功耗抗干扰能力强

                面向特定的应用

软件特点:

                一般采用C语言进行开发(接近底层 可以直接操作地址)

                程序一般存储在 ROM和Falsh里面(好处掉电不丢失)

                软件和硬件密切相关

51和STM32区别

        C51属于传统的8位单片机 一般现在在大学中教学,满足不了现在的市场需求(成本低、性能高、功耗低、多任务、易用界面),一般用在小家电、消费类电子产品。

        基于这样的市场需求,ARM公司推出了一款基于ARMv7架构的Cortex M3/M4的32位的内核,一般用在工控场景,ST公司就基于这个内核推出了一款新的MCU(微处理器),就叫做STM32。

芯片架构

市面上一般有 A系列 R系列 M系列

A系列:一般用于高端的智能产品

R系列:一般面向高性能实时应用

M系列:一般面向成本敏感型的产品(智能穿戴 智能家居等);

STM32应用领域

STM32属于微处理器 本身自带了通信接口(IIC UART SPI)可以控制多个设备 , STM32一般用于低功耗产品 如智能手环 扫地机器人等

STM32开发方式

STM32开发方式三种:函数库开发 寄存器开发 图形界面开发

函数库开发的优点

                程序容易维护

                代码可读性高

                提高开发效率

缺点

                相比于寄存器开发使用函数库开发的程序他的运行效率稍微低一些 大概低于10%-15%左右如不用于实时性高的产品可以忽略不记

寄存器开发

        STM32属于32位的MCU,STM32内部的资源十分丰富,就导致寄存器的数量和复杂度都增大了,就要求开发人员对底层的知识掌握的非常扎实。

              优点

                运行效率高

                节约存储空间

                缺点

                开发效率低

                程序不容易维护

                程序可读性差

一般来说在开发过程中基本不使用寄存器开发 如频繁使用中断服务函数则需要使用寄存器开发

图形界面开发

        为了开发人员考虑,ST公司近几年推出了一款图形界面软件(STM32CubeMx),也被称为初始化代码生成器,用户只需要根据实际情况来选择对应的按钮和功能就可以自动生成代码,可以极大程度的提高开发效率,但是一旦程序出现问题,就不容易维护,所以适合有经验的工程师使用,图形界面软件自动生成的代码也是基于HAL库。

        优点

        不用写代码

        开发效率高

        缺点

        不易维护

        运行效率低

STM32开发平台

芯片本次使用的芯片则是属于STM32F407ZGT6 芯片采用ARM公司设计的CortexM4内核

主频高达168MHZ

STM32 32位MCU

32是什么?32是一次性能够处理的数据有多少位

F  基础型

407 高性能

Z 引脚数目 144

G 闪存容量1024

T 封装QFP(硬件工程师负责的)

6 温度范围 -40~+85

     GPIO外设

GPIO指的是通用的输入输出端口可以由用户通过软件进行配置来进行控制 GPIO引脚需要和外设进行连接从而实现通信的采集以及实现功能

          引脚说明

                电源引脚  VCC VDD VSS VDDA VSSA VREF 等都属于电源引脚

                晶振引脚 PC14 PC15 PH0 PH1 属于晶振引脚 当然也可以作为其他引脚进行使用

                复位引脚 NRST属于复位引脚

                BOOT引脚 BOOT0 是专用引脚 BOOT1属于功能引脚

                GPIO引脚 芯片共有144个引脚 但GPIO引脚有114个

外设的使用

引脚的标号和芯片的编号是一一对应

代码如何编写

可以采用寄存器 函数库 HAL库三种方式编写

下面我以函数库进行编写

在GPIO.c里面会有介绍如何编写程序如我们不想自己写则直接可以使用 ST公司给的帮助手册

 

把main函数所需要的复制一下

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2144007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python编码系列—Python组合模式:构建灵活的对象组合

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

质量与数量的博弈!大模型数据建设

质量与数量的博弈!大模型数据建设 前言大模型数据建设 前言 大数据和人工智能(DataAI)技术正以惊人的速度改变着我们的生活和工作方式。大模型数据建设作为人工智能领域的核心组成部分,其重要性日益凸显。 大模型数据建设涉及到海…

硬件工程师笔试面试——电机

目录 18、电机 18.1 基础 电机原理图 电机实物图 18.1.1 概念 18.1.2 电机的一些基本分类和特点 18.2 相关问题 18.2.1 不同类型的电机在实际应用中有哪些具体的优势和劣势 18.2.2 在设计一个电机系统时,我应该如何考虑电机的选型和配置? 18.2.3 对于需要频繁启停的…

【C++篇】C++类与对象深度解析(三):类的默认成员函数详解

文章目录 【C篇】C类与对象深度解析(三)前言4. 运算符重载基本概念4.1 运算符重载的基本概念4.2 重载运算符的规则4.3 成员函数重载运算符4.4 运算符重载的优先级与结合性4.5 运算符重载中的限制与特殊情况4.5.1 不能创建新的操作符4.5.2 无法重载的运算…

TypeScript入门 (一)数据类型与运算符

引言 大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年9月学习赛的TypeScript学习总结文档。希望通过我的知识点总结,能够帮助你更好地学习TypeScript。💕💕&#x…

【漏洞复现】科荣AIO UtilServlet 代码执行漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

学习实践: Procdump获取本地远控信息

看到一篇文章是通过Procdump获取ToDesk远控信息的,于是实操了一下;顺便也测试了一下向日葵远控,发现都是适用的。该方法对于肉鸡提权有一定价值。 1、获取ToDesk远控信息 测试版本:ToDesk v4.7.4.3 测试工具:procdump、…

【Java EE】文件IO

Author:MTingle major:人工智能 --------------------------------------- Build your hopes like a tower! 目录 一、文件是什么? 二、针对文件系统操作的API 1.文件路径,文件名,文件是否存在 2. 创建文件 3.删除文件&#…

推动公平学习与身份归一化的视网膜神经疾病数据集

人工智能咨询培训老师叶梓 转载标明出处 在机器学习领域,公平性(也称为公正性或平等性)是一个日益受到关注的话题,它对于社会的福祉至关重要。然而,目前缺乏专门用于公平学习且包含成像数据的公共医学数据集&#xff…

vs2022配置opencv==4.9.0(C++)

1、下载opencv-windows [opencv4.9.0下载地址](Releases - OpenCV) 下载4.9.0版本: 双击下载好的opencv-4.9.0-windows.exe,选择安装路径: 2、配置opencv环境 (1)添加系统环境变量 此电脑–>右键“属性”–…

小红书治愈插画副业,猛猛涨粉上万+,每天只用5分钟

在这个数字化时代,AI技术正以前所未有的速度改变着我们的生活和工作。特别是在内容创作领域,AI的运用已经催生了一种全新的创作模式。一幅幅温馨可爱的治愈插画如同清流,不仅契合当下年轻人生活的状态,更成为许多人表达生活态度、…

「iOS」push与present

iOS学习 前言push与poppresent与dismiss使用dismiss弹出多级PresentedViewController 与 PresentingViewController区别 总结 前言 在此前就学习过视图的push与present。与之对应的退出方法为pop与dismiss。这里进行一次总结。 push与pop pushViewController 是通过导航控制器…

黑神话:悟空 后话

《黑神话:悟空》在游戏界掀起了波澜。对许多人来说,包括我自己,这款游戏是我们一直期待的——一款纯粹、沉浸且专注于高质量游戏体验的作品。它不追求现代趋势,没有微交易或在线服务模式,也没有为了未来扩展包而设计的…

PumpkinFestival靶机详解

靶机下载地址 https://www.vulnhub.com/entry/mission-pumpkin-v10-pumpkinfestival,329/ 靶机配置 主机发现 arp-scan -l 端口扫描 nmap -sS -Pn -A -p- -n 192.168.229.163 访问网页 http://192.168.229.163/ 这些可能是用户名和账号留存 F12查看页面源码,发…

瑞芯微RK3588开发板Linux系统添加自启动命令的方法,深圳触觉智能Arm嵌入式鸿蒙硬件方案商

本文适用于触觉智能所有Linux系统的开发板、主板添加自启动命令的方法,本次使用了触觉智能的EVB3588开发板演示,搭载了瑞芯微RK3588旗舰芯片。 该开发板为核心板加底板设计,为工业场景设计研发的模块化产品,10年以上稳定供货,帮助…

2024年9月18日历史上的今天大事件早读

1043年9月18日 范仲淹实行改革 1393年9月18日 “活财神”沈万三逝世 1783年9月18日 瑞士著名数学家欧拉逝世 1851年9月18日 《纽约时报》创刊 1903年9月18日 清末爱国将领冯子材逝世 1917年9月18日 护法战争爆发 1931年9月18日 “九一八”事变爆发 1936年9月18日 阎锡山…

SOMEIP_ETS_115: SD_Entry_references_more_options_than_exist

测试目的: 验证DUT能够拒绝一个订阅请求,该请求中的选项引用超出了实际存在的选项数量,并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协议,当接收到一个引用了比实际存在的更多选项的Subscrib…

SPI中的CPOL和CPHA

SPI中的CPOL和CPHA学习SPI必须掌握的知识,因为它涉及到“数据位采集”。重点掌握空闲时SCK的电平是怎么定义的。采集时,是怎么规定发生在哪个时钟边沿。CPOL用来决定SPI总线在空闲时,SPI_SCK引脚输出的电平;CPHA用来决定“数据位采集点”发生在第几边沿。…

【Python】从基础到进阶(八):文件操作与上下文管理

🔥 个人主页:空白诗 文章目录 一、引言二、Python文件操作基础1. 打开文件2. 读取文件3. 写入文件4. 文件指针定位 三、上下文管理1. 使用with管理文件2. 自定义上下文管理器 四、文件操作的最佳实践五、案例:日志文件管理1. 需求分析2. 实现…

低代码技术:简化应用开发的未来

近年来,低代码技术作为一种新兴的应用开发方法,受到了广泛关注。低代码平台通过图形化的界面和预设的模块,使得用户能够以较少的代码编写工作创建应用程序。这一技术的发展,标志着软件开发过程中的一个重要变革。 低代码技术的基…