实训day2_1|了解硬件(粤嵌M4开发板芯片型号:STM32F407ZET6 内核:Cortex-M4)

本文主要是介绍实训day2_1|了解硬件(粤嵌M4开发板芯片型号:STM32F407ZET6 内核:Cortex-M4),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

嵌入式实训

  • 一、STM32的芯片选型
  • 二、STM32的开发方式
  • 三、STM32程序的下载方式

一、STM32的芯片选型

粤嵌M4开发板芯片型号:STM32F407ZET6 内核:Cortex-M4

STM32 — 32位MCU

F — 基础型

407 — 高性能

Z — 144个引脚

E — 512K

T — 封装 QFP (可以不用了解)

6 — 温度 -40 ~ +85

二、STM32的开发方式

STM32的开发方式大体分为两种:固件库开发(推荐) + 寄存器开发

固件库开发:

ST公司针对STM32芯片,开发了很多函数接口,目的就是为了降低开发人员的使用门槛,说白了,就是ST公司写了很多的函数供别人使用,开发人员就无须过多了解底层知识,只要学过C语言就可以轻松开发。

好处:

开发效率提高

代码可读性好

代码容易维护

坏处:固件库编写的代码要比寄存器编写的代码的运行效率大概低10%左右(可以忽略不计)

寄存器开发:

开发人员自己根据芯片的数据手册,去学习寄存器的使用方式,掌握底层开发的关键知识。

好处:

代码的运行效率高

坏处:

开发效率降低

代码不好维护

代码可读性不好

在工作中,绝大部分的情况都是使用固件库开发项目的,极少数情况下会使用寄存器开发

三、STM32程序的下载方式

STM32的程序下载方式:串口下载 + 下载器下载(ST-LINK、J-LINK、U-LINK…推荐)

\1. 安装J-LINK下载器的驱动

在这里插入图片描述

\2. 硬件接线方式

注意:先接GND(地),红色线接板子上的GND,另外三根依次接过去,红蓝黄黑

\3. 查看J-LINK驱动是否安装成功

在这里插入图片描述

\4. 配置KEIL5,选择对应的下载器

查看图示

\5. 编译程序,点击下载按钮,进行程序下载

在这里插入图片描述

在这里插入图片描述

====开发板介绍

在这里插入图片描述

芯片参数了解:

1.学会看文档手册

2.32位的Cortex-M4处理器,标准工作频率168M,支持FPU浮点运算和DSP指令

3.具有144个引脚,有114个IO口,大部分IO口都是容忍5V电压(模拟(ADC、DAC)通道除外)

4.CPU工作电压:1.7~3.6V电源电压

5.时钟系统

4~26M的外部高速(晶振)时钟

内部的16M高速RC振荡器时钟

内部32K低速RC振荡器时钟

内部锁相环(PLL,倍频),一般系统时钟(168M)都是外部或者内部高速时钟经过PLL倍频后得到的

外部低速32.768K晶振,主要是用于RTC时钟

HSE : H 高速 E 外部

LSE : L 低速 E 外部

LSI : L 低速 I 内部

HSI : H 高速 I 内部

168 = 8M * PLL(21)

注意:如果外部晶振失效,自动切换到内部的16M晶振振荡器

6.一般工作模式有三种:低功耗、标准功耗、高性能

低功耗:睡眠、停止、待机三种模式,可以使用外部RTC和备份寄存器供电

标准功耗:正常工作模式,168M频率

高性能:超频工作,提高芯片工作频率

7.AD

3个12位精度AD支持24个外部通道ADC转换、内部通道可用于内部温度测量

8.DA

2个12位精度的DAC

9.DMA:直接存储器访问

16个DMA通道

10.定时器:17个定时器

10个通用定时器 TIM2 和 TIM5 是32位

2个基本定时器

2个高级定时器

1个系统定时器

2个看门狗定时器

定时器是系统的非常重要的资源:实现定时、计数功能

12.通信接口

3个I2C接口

2个I2S接口

3个SPI接口

2个CAN2.0

2个USB OTG

1个SDIO

6个串口

开发板的芯片可用的IO口:

PA0~PA15 16个引脚
PA~PG + PH0 +PH1 == 114个可用IO

将main.c文件所有内容进行修改为下面

#include “stm32f4xx.h”

int main(void)

{

return 0;

}

创建好工程后-----------------------------------------------------------------------

若编译时出错
修改:

(1)删除stm32f4xx_it.c文件中第32行 #include “main.h”

(2)删除stm32f4xx_it.c文件中第144行 TimingDelay_Decrement();

然后:

修改system_stm32f4xx.c中第316行为

#define PLL_M 8

修改文件stm32f4xx.h中第123行代码为

#define HSE_VALUE ((uint32_t)8000000)

这篇关于实训day2_1|了解硬件(粤嵌M4开发板芯片型号:STM32F407ZET6 内核:Cortex-M4)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/356597

相关文章

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

开发板NFS挂载文件目录

文章目录 序NFS1. 安装 NFS 服务器和客户端在服务器上(NFS 服务器端)在客户端上(NFS 客户端) 2. 配置 NFS 服务器创建共享目录编辑 `/etc/exports` 文件启动 NFS 服务 3. 在客户端挂载 NFS 共享创建挂载点挂载 NFS 共享验证挂载 4. 设置开机自动挂载5. 解决权限问题 序 本节主要实现虚拟机(服务器)与开发板(客户端)通过N

PHP: 深入了解一致性哈希

前言 随着memcache、redis以及其它一些内存K/V数据库的流行,一致性哈希也越来越被开发者所了解。因为这些内存K/V数据库大多不提供分布式支持(本文以redis为例),所以如果要提供多台redis server来提供服务的话,就需要解决如何将数据分散到redis server,并且在增减redis server时如何最大化的不令数据重新分布,这将是本文讨论的范畴。 取模算法 取模运

Weex入门教程之1,了解Weex

【资料合集】Weex Conf回顾集锦:讲义PDF+活动视频! PDF分享:链接:http://pan.baidu.com/s/1hr8RniG 密码:fa3j 官方教程:https://weex-project.io/cn/v-0.10/guide/index.html 用意 主要是介绍Weex,并未涉及开发方面,好让我们开始开发之前充分地了解Weex到底是个什么。 以下描述主要摘取于

Ubuntu22.04回退系统内核

文章目录 起因回退操作卸载内核禁止内核升级 起因 最近因为系统内核自动升级,导致显卡驱动检测不到,炼丹环境被破坏。无奈只能重装驱动,于是跟着手册操作发现驱动要求的是内核版本是5.15.0-25-generic,而我通过uname -r发现这时候的内核版本是6.8.0-40-generic,看来只能回退了。 我搜索了网上很多的文章,没有一篇文章能够完全解决这个问题,所以在我多次尝