开发知识点-stm32/ESP32/Mega2560嵌入式设计

嵌入式设计
- STM32四轴飞行器
- 原理图解析
- 小马哥 DragonFly四轴
- 软件开发 13 STM32 SPI总线通讯
- SPI 总线协议简介
- SPI 物理层
- SPI 协议层
- SPI 通信时序
- STM32硬件SPI接口简介
- SPI接口 利用库函数初始化配置
- ESP32
“F:\res\marlin-2.0.x”
“F:\res\Marlin-2.1.2”
STM32四轴飞行器
小马哥STM32四轴飞行器
原理图解析




西安小马哥四轴/ArduPilot Mega系列飞控/MWC
小四轴/四轴/穿越机
硬件层面
PCB做结构板
MOS管控制
空心杯电机调速
供电系统
Intel® Core™ i5-8300H 2.30GHz
16.0 GB (15.9 GB 可用)
飞控程序如何写
STM32F103C8T6做主控
手柄
STM32F411
STM32F103
• 3路USART,速度高达12.5 Mbit/s,
• 5路SPI(I2S复用),速度高达50 Mbit/s,
• 3路I²C,高达1Mbps
• 1x SDIO,频率高达48MHz,且所有封装均提供,
• 1个USB 2.0 OTG(全速),
• 2路全双工I²S,高达32位/192KHz,
• 3路单工I²S,高达32位/192KHz,
• 速度高达2.4 MSPS的12位ADC,
• 11个频率高达100 MHz的16和32位定时器
性能: 在100 MHz频率下,
从Flash存储器执行时,STM32F411单片机能够提供125 DMIPS/339 CoreMark性能,
并且利用意法半导体的ART加速器实现了FLASH零等待状态。DSP指令和浮点运算单元扩大了产品的应用范围。
功效: 该系列产品采用意法半导体90 nm工艺和ART加速器,
具有动态功耗调整功能,能够在从Flash存储器执行时实现低至100 µA/MHz的电流消耗。
停机模式下,功耗低至10 µA。
一、四轴硬件设计课程
1、小马哥四轴第1讲、 Altium Designer安装与介绍
2、小马哥四轴第2讲上、原理图讲解之MCU最小系统讲解
3、小马哥四轴第2讲下、原理图各模块讲解
4、小马哥四轴第3讲上、AD库制作之原理图库的制作
5、小马哥四轴第3讲下、AD库制作之PCB封装库的制作
6、小马哥四轴第4讲上、原理图绘制
7、小马哥四轴第4讲下、原理图绘制
8、小马哥四轴第5讲、 用CAD绘制小四轴PCB外形
9、小马哥四轴第6讲、 四轴PCB板元器件布局
10、小马哥四轴第7讲上、PCB布线与2.4G模块布线
11、小马哥四轴第7讲下、PCB布线之电源布线与敷铜
12、小马哥四轴第8讲、 四轴四层板PCB板设计
二、四轴STM32软件设计入门课程与飞控算法课程
第1讲、 KEIL(MDK-ARM)安装
第2讲上、Keil使用固件库创建STM32工程
第2讲下、KEIL5快速创建STM32工程
第3讲上、初识STM32
第3讲下、初识STM32
第4讲、 STM32标准库的封装
第5讲上、点亮LED与GPIO介绍
第5讲下、点亮LED之标准库使用
第6讲上、利用串口实现打印
第6讲下、串口打印重定向函数
第7讲上、系统时钟与滴答定时
第7讲下、滴答定时器计时延时
第8讲、 RGB全彩灯编程与调试
第9讲上、STM32外部中断及NVIC
第9讲中、STM32中断及NVIC原理
第9讲下、STM32中断代码实现
第10讲上、STM32 IIC通讯时序讲解
第10讲下、STM32 IIC 代码实现
第11讲上、陀螺仪MPU9250讲解
第11讲下、陀螺仪MPU9250讲解
姿态解算、数据通讯协议

电量LED
熟练使用外设
飞控算法
小马哥 DragonFly四轴
电子开发学习
- 开发环境 Keil(MDK_ARM)
- STM32 F1、F4 标准库
原理图
源码
芯片、模块

软件开发 13 STM32 SPI总线通讯
SPI 总线协议简介
常用 通讯总线(单片机与单片机、单片机与外围设备的总线协议)
串口USART、IIC、SPI(高速)、CAN
遥控 NRF24L01通信 走 SPI
STM32F4 硬件SPI接口配置使用
实现NRF24L01 芯片 寄存器 读写
涉及 外设 GPIO 、SPI外设 、NRF24L01
STM32中文参考手册 refenence manual
DS10314_STM32F411CCU6_Datasheet 芯片手册
NRF24L01 中文说明书
SPI协议 摩托罗拉公司 通信协议 Serial Peripheral Interface
串行外围设备接口
高速 同步 全双工通信总线
( 通信分类
串口 异步 全双工
IIC 同步 半双工
)什么单工
SPI 物理层
从 物理层 和 协议层 讲解

外围设备 该怎么接
有多少根 信号线
SPI 支持的 通信模式
一主一从 (图中展示的)
一主多从
不支持 多主模式
(IIC 可以 11,1多,多主机1从机通信)
从机 可以是MCU、外围设备、传感器
四轴上 MCU + NRF模块 (一主一从)
SPI 协议 四根线 (信号线 连接关系)
NSS/CS 片选线(片选信号 主机控制)
SCK 时钟线(同步时钟 主机控制)
两根数据线
MOSI (主到从)
MISO
SCK、MOSI、MISO可以共用(一主多从)
片选线 单独 (SPI 是 IO口控制 片选引脚)
(IIC 一主多从 主机广播一个地址 从机对比地址、返回应答信号、建立通信)
SPI IO口 电平拉低 (选中从机进行通信 独占共享线)
硬件连接关系
通信协议通信模式的切换
SPI 协议层
与IIC协议层 一样

SPI 通信时序

四个引脚 信号 时序
片选线 选中开始(起始信号 电平拉低 默认高电平 1)(停止信号 拉高 6)
SCK同步时钟
剩下两个 数据线
通信选择状态 低电平
高电平(释放总线)
时钟脉搏 一个周期 一位数据 交换
一个完整方波为一个周期
上升沿 为 准备数据
下降沿 为 采集数据
期间 保证 信号线的电平 是稳定的(数据有效性)
MOSI/MISO上数据也是同时进行的
SPI数据传输流程

STM32硬件SPI接口简介
SPI接口 利用库函数初始化配置
ESP32
https://www.eepw.com.cn/zhuanlan/315164.html
相关文章:
开发知识点-stm32/ESP32/Mega2560嵌入式设计
嵌入式设计 STM32四轴飞行器原理图解析小马哥 DragonFly四轴软件开发 13 STM32 SPI总线通讯SPI 总线协议简介SPI 物理层SPI 协议层SPI 通信时序 STM32硬件SPI接口简介SPI接口 利用库函数初始化配置 ESP32 “F:\res\marlin-2.0.x” “F:\res\Marlin-2.1.2” STM32四轴飞行器 小…...
亚马逊云科技海外服务器初体验
目录 前言亚马逊云科技海外服务器概述注册使用流程实例创建性能表现用户体验服务支持初体验总结 前言 随着云原生技术的飞速发展,越来越多的企业和开发者选择云服务器来作为自己的使用工具,云原生技术的发展也促进了云服务厂商的产品发展,所…...
外贸出口游戏设备亚马逊CE认证电磁兼容性(EMC)测试解析
游戏设备上架亚马逊出口欧盟需办理CE认证电磁兼容性(EMC)测试。 CE认证,作为欧盟的一项标准,成为了游戏设备行业中最为重要的认证之一。CE认证不仅是游戏设备进入欧洲市场的必要条件,也是保证产品符合欧洲市场标准的重…...
设计模式——组合模式(Composite Pattern)+ Spring相关源码
文章目录 一、组合模式定义二、例子2.1 菜鸟教程例子2.1.1 创建 Employee 类,该类带有 Employee 对象的列表。2.1.2 使用 Employee 类来创建和打印员工的层次结构。 2.2 JDK源码——java.awt.Container2.3 Spring源码——CompositeCacheManager 三、其他设计模式 一…...
大语言模型-LLM简介
大语言模型如此火爆,查了些资料整理一下,做个初步的了解。 语言模型的发展从开始的统计方法到使用神经网络,再到现在通过使用Transformer架构的模型训练大量数据,理解文本规则和模式,同时随着训练数据和模型的扩大&…...
创建多层级行索引,创建多层级行索引的DataFrameMultiIndex.from_product()
【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 创建多层级行索引, 创建多层级行索引的DataFrame MultiIndex.from_product() [太阳]选择题 使用pd.MultiIndex.from_product(),下列输出正确的是: import pandas as pd…...
用尽可能简单易懂的代码做个时间轴(时间线)
用尽可能简单的代码,做个时间线或者时间轴展示功能,效果如图: 特点:纯DIVCSS构建,需要展示到什么进度,直接加active属性就行了。 还贴心给配了个setProgress(step)函数,功能太简单,…...
STM32笔记—定时器
目录 一、TIM简介 二、基本定时器(TIM6和TIM7) 1. TIM6和TIM7简介 2. TIM6和TIM7的主要特性 3. TIM6和TIM7的功能 3.1 时基单元 3.2 计数模式 3.3 时钟源 三、通用定时器 1. TIMx(2、3、4、5)简介 2. TIMx主要功能 3. 时钟选择 4. 影子寄存…...
【力扣:1504】统计全1子矩阵
统计全1子矩阵个数 思路1:首先考虑深度优先模拟,从【0,0】出发向下、右扩展,符合条件res,最后输出res,比较直观,但重复进行了大量节点遍历操作,时间复杂度较高,数据量大时…...
排序算法之-选择
算法原理 在未排序的数列中找出最大(或最小)的元素,然后将其存入到已排序的数列起始位置,紧接着在剩余的未排序数列中继续查找最大(或最小)的元素,并将其放入到已排序的数列末尾,依…...
机器学习模板代码(期末考试复习)自用存档
机器学习复习代码 利用sklearn实现knn import numpy as np import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCVdef model_selection(x_train, y_train):## 第一个是网格搜索## p是选择查找方式:1是欧…...
使用sizeof()和strlen()去计算【数组】和【指针】的大小
文章目录 一、知识回顾1、回顾sizeof()、strlen的作用:2、数组和指针3、数组名 二、sizeof()、strlen()的使用区别1、注意区别:2、一维数组与一级指针3、二维数组与二级指针 三、总结回顾 一、知识回顾 1、回顾sizeof()、strlen的作用: siz…...
viple进阶4:打印空心三角形
题目:根据用户输入的行数n打印空心三角形,下图分别为n3、n4、n5和n10的效果图 第一步:观察效果图 输入的行数为3,打印结果就有3行;输入的行数为4,则打印结果就有4行;以此类推,输入的…...
Oauth2.0的内容
OAuth 2.0是一个授权协议,用于允许第三方应用程序访问用户在另一个应用程序上存储的受保护资源,而不需要将用户名或密码公开给第三方应用程序。 OAuth2.0基于客户端-服务器模型,通常需要三个主体:客户端、资源所有者和授权服务器…...
npm 下载包失败解决方案
1.【问题描述】使用 npm 下载vue项目依赖包时失败,版本不一致。 【解决方法】使用 npm install --force npm install --force 是一个命令行指令,用于在 Node.js 环境中使用 npm(Node Package Manager)安装包或模块。–force 参数表…...
C语言---插入排序、希尔排序、冒泡排序、选择排序、快速排序简单介绍
文章目录 插入排序希尔排序冒泡排序选择排序快速排序 本文主要介绍用C语言实现的一些排序方法,有插入排序、希尔排序、冒泡排序、选择排序和快速排序,文章中给出的例子都是按照升序排列的。 插入排序 若数组只有一个元素,自然不用排序&#…...
撸视频号收益这个副业靠谱吗?
我是卢松松,点点上面的头像,欢迎关注我哦! 昨天有个人问我说做视频号能月入过万吗? 我的回复是:99%的人不能。 但为什么会经常有人这么问呢,松松思考了一下,原因是最近很多人在晒视频号撸收益的项目&am…...
2、数组、Map+HashMap、Set+Hashset、Char和Character类、String类和Char类、Math类
数组 \\一个普通的长度为1的整数数组 Integer[] arr new Integer[1];\\一个普通长度为1的同时元素初始化为1的整数数组。 Integer[] arr new Integer[]{1};\\一个长度为0的空数组 Integer[] arr new Integer[0];Map 常见方法 void clear( ) 从此映射中移除所有映射关系&#…...
ESP8266 WiFi模块快速入门指南
ESP8266是一种低成本、小巧而功能强大的WiFi模块,非常适合于物联网和嵌入式系统应用。本指南将为您提供关于ESP8266 WiFi模块的快速入门步骤和基本知识。 第一步:硬件准备 首先,您需要将ESP8266 WiFi模块与您的开发板连接。通常情况下&#…...
微信小程序将后端返回的图片文件流解析显示到页面
说明 由于请求接口后端返回的图片格式不是一个完整的url,也不是其他直接能显示的图片格式,是一张图片 后端根据模板与二维码生成图片,返回二进制数据 返回为文件流的格式,用wx.request请求的时候,就自动解码成为了下面这样的数据数据格式,这样的数据没…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
