草庐IT

【CANopen】关于STM32的CanFestival移植

系列文章目录文章目录系列文章目录一、准备工作二、源码移植1、新建CubeMX工程2、移植CanFestival源码3、去除源码中的多余项4、源码修改三、底层驱动适配四、字典工具1、字典的使用使用STM32F407单片机一、准备工作CanFestival下载二、源码移植1、新建CubeMX工程默认都会,略2、移植CanFestival源码在CubeMX生成代码路径下创建一个文件夹,将源码目录下的include和src两个文件夹复制进去3、去除源码中的多余项首先是include文件夹,如图所示,其中,timers.h大概率会和CubeMX中生成的文件名重名,所以需要重命名这个文件夹改名后需要修改s

STM32外设使用之OLED(ssd1306),基于cubemx

前言在学习的过程中,发现许多代码都是在套用模板,但是修改模板的过程对新手是很不友好的准备工作外设连接GND-----GNDVCC–3.3VSCL----SCLSDA----SDA这个基本不会出错,就是一条时钟线,一条数据线,cubemx的配置这个挺简单的,动动手就好了(可以调为快速模式)iic的传输原理iic原理也很好懂我们只需要明白一个就是在传输中:SCL低电平时,SDA变化;SCL高电平时,从机读取SDA的电平(高为1,低为0),以及每发送一个ack的应答信号。具体如何编写,若简单的我们可以读参考手册(其实就是一些首发指令),难的还是建议从模板去修改!!!记得看一下自己设备的地址,一般是是

【智能家居入门2】(MQTT协议、微信小程序、STM32、ONENET云平台)

此篇智能家居入门与前两篇类似,但是是使用MQTT协议接入ONENET云平台,实现微信小程序与下位机的通信,这里相较于使用http协议的那两篇博客,在主程序中添加了独立看门狗防止程序卡死和服务器掉线问题。后续还有使用MQTT协议连接MQTT服务器的智能家居项目。前言一、硬件模块二、连接服务器测试三、两个协议的对比分析1、代码结构上:2、获取服务器数据上:3、架构上:四、下位机主要代码1、接收并解析云平台下发数据:2、传感器数据上云:五、微信小程序主要代码1、index.js2、index.wxml六、源码获取前言这里给出前两篇使用http协议博客的网址:①实现数据上云:https://blog.

stm32-ADC转换

ADC(Analog-DigitalConverter)为模拟-数字转换器,可以将引脚上连续变化的电压值等效为数字变量。12位为其分辨率0~2^12-1,将能够检测到的电压范围通过线性等效为0-4095其中的一个数字变量,分辨率越高越精确。1us为转换时间实现原理:通过通道选择开关选择输入引脚,然后通过编码DAC实现等效电压,然后将引脚输入电压与编码产生的电压相比较。通过2分法查找,直到编码电压与引脚输入电压相等,此时引脚输入电压的编码就和预编码相同。一般将参考电压与VDDA,VSSA模拟电源相连。需要时钟使能和START开始信号。转换结束会将EOC信号置位。输入通道可选外部输入和内部输入,并

通信工程毕设 stm32与深度学习口罩佩戴检测系统(源码+硬件+论文)

文章目录0前言1主要功能2硬件设计(原理图)3核心软件设计4实现效果5最后0前言🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是🚩毕业设计stm32与深度学习口罩佩戴检测系统(源码+硬件+论文)🥇学长这里给一个题目综合评分(每项满分5分)难度系数:3分工作量:3分创新点:5分🧿项目分享:见文末!1主要功能系统框架,下位机系统分为主控模块、通信模块、显示模块、报警模块四个部分组成,其运行流程为:首

STM32之IIC总线控制ATC24C04

一、存储器介绍1、电子密码存储概述单片机的电子密码存储是一种将密码信息以电子形式存储在单片机内部的技术。它通常用于需要保护敏感信息或限制访问权限的应用程序,如安全系统、门禁系统、电子锁等。电子密码存储可以通过多种方式实现,以下是其中一种常见的概述:(1)存储器选择:选择适合存储密码的内部或外部存储器。内部存储器通常是非易失性存储器(如闪存),可以在断电情况下保持数据。外部存储器可以是EEPROM(可擦写可编程只读存储器)或其他非易失性存储器(FLASH)。(2)加密算法:为了增加密码的安全性,可以使用加密算法对密码进行加密。常见的加密算法包括DES(数据加密标准)、AES(高级加密标准)等。密

STM32——I2C通信

一、什么是I2C通信1、I2C 简介            I2C(InterICBus)是由Philips公司开发的一种通用数据总线,它是两线式串行总线,它具有两根通信线:SCL(SerialClock)、SDA(SerialData),多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。I2C是同步半双工的工作模式。2、I2C硬件电路        所有I2C设备的SCL连在一起,SDA连在一起,设备的SCL和SDA均要配置成开漏输出模式SCL和SDA各添加一个上拉电阻,阻值一般为4.7KΩ左右上图的CPU是该通信的主机I2C硬件电路的特点:(

嵌入式STM32 单片机 GPIO 的工作原理详解

STM32的GPIO介绍GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。以STM32F103ZET6芯片为例子,该芯片共有144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同时每组GPIO口组有16个GPIO口。通常简略称为PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。STM32的大部分引脚除了当GPIO使用之外,还可以复用为外设功能引脚(比如串口)。GPIO基本

一个简单的HAL库STM32使用DMA+硬件IIC驱动0.96寸OLED的方法

前言自己在刚入坑嵌入式的时候,加入学校科协的一道免试题是开发一个简易的示波器,当时萌新不会做,中间又在准备比赛没时间,最近帮女朋友做课设需要做一个简易的交流电压表,而且终于有空做一下自己感兴趣的项目了,就想到了之前想做有没得做的一个简易示波器。然后在开发示波器的时候自己写了一个画点的函数,后来发现画了的点只使用一小块屏幕,不刷新整屏,就会导致不同位置的点共同出现在屏幕上,后来我想到了整屏刷新的方式,后来又自己写了一个不使用DMA的方式驱动,发现帧率实在太低,没法用,就想到了用DMA的方式来刷屏。在学习使用DMA的方式驱动OLED的时候上网查了查前人做过的教学发现不尽人意,中间也踩了很多坑,就想

正点原子--STM32基本定时器学习笔记(1)

目录1.定时器概述1.1软件定时原理1.2定时器定时原理1.3定时器分类1.4定时器特性表1.5基本、通用、高级定时器的功能整体区别2.基本定时器简介3.基本定时器框图时钟树分析这部分是笔者对基本定时器的理论知识进行学习与总结!主要记录学习过程中遇到的重难点,其他一些基础点就一笔带过了!1.定时器概述1.1软件定时原理使用纯软件(CPU死等)的方式实现定时(延时)功能。比如想要延时1s,那么CPU就卡在延时函数里1s,什么事情都不能干,就会大大占用CPU资源。软件定时不精准的原因:1.函数调用有一个压栈和出栈的过程,压栈和出栈也需要消耗时间。2.stm32是arm架构,有三级流水线,(流水线可