- 博客(135)
- 资源 (4)
- 收藏
- 关注
原创 1.5 Cubmx_STM32 CAN通讯,多包数据收发送的处理
一、遇到的问题1、发送单包数据,我想都非常简答,例子一大堆包括,demo。但是发送多包数据怎么处理?2、发送多包数据,网上基本上就两种说发*两个数据之间加延时*查询邮箱是否满了HAL_CAN_GetTxMailboxesFreeLevel()对比上面两种方法,为了效率我们选择第二种二、配置与代码直接上cubemx配置直接生成后,cubemx没有设置过滤器,需要自己添加,结合网上各资料总结代码如下int main(void){ /* USER CODE BEGIN 1 */
2020-10-15 09:26:33 3321 1
原创 2.6 STM32_多定时器复用一个硬件定时器
当定时器不够用或者不想浪费资源时。我们可以利用定时器复用功能。使用一个硬件定时器就可以实现多个时间的定时。类似于软件定时器。优点:可以多个定时器复用要给硬件,节约资源缺点:它是在某个任务或者mian中一直循环查询。优先级没有定时器中断优先级高/* * Copyright (c) 2016 Zibin Zheng <znbin@qq.com> * All rights reserved */#include "multi_timer.h"#include "tim.h"//ti
2020-07-06 16:59:09 1238
原创 1.2 Cubemx_STM32空闲中断,非DMA收发
从前面文章知道,我用过DMA收发,但有时候需要用非DMA方式,我发现如果使用DMA方式发送的话,代码一下子多起来好的。我就是这个原因才用非DMA方式的。人狠话不多,直接上图,上代码:cubemx,配置如下,全局中断打开,其他波特率什么的可自行配置,略过:直接生成后初始化添加的代码,开启中断:void usart1_Init(){ HAL_UART_Receive_IT(&huart1, rx_EPOS_Buff, EPOS_RX_FRAME_LEN); __HAL_UART_ENAB
2020-05-29 16:08:32 634
原创 2.2 STM32 RAM溢出分析(KEIL在Build的时候提示Error:L6406E:No space in execution)
先请问大家一个问题:keil5编译后生成 Program Size: Code RO-data RW-data ZI-data是什么?要想知道RAM溢出分析,对内存需要比较了解。实际上:RAM_SIZE=RW-data+ ZI-dataZI-data: 已定义未初始化或者初始化为0的变量大小RW-data:已经初始化的变量大小这个RAM_SIZE就是STM32中的RAM内存空间。个...
2020-02-25 17:16:28 4983
原创 2.14 STM32 串口传输最佳处理方式 FreeRTOS+队列+DMA+IDLE (二)
紧接着上一篇文章,如何合理处理多个串口接收大量数据。此种方法,很厉害,很NB可节省大量CUP资源。并且FreeRTOS任务处理的非常合理。中心思想:1、开启DMA 环形接收数据模式。2、触发接收数据中断。3、把数据长度、地址 入队。4、再开辟一个函数专门处理数据的出队函数。
2019-09-06 16:13:07 6795 7
原创 2.13 STM32 串口传输最佳处理方式 FreeRTOS+队列+DMA+IDLE (一)
如何处理串口通信大数据,FreeRTOS+DMA+空闲中断
2019-09-06 11:18:39 8729 2
原创 ESP8266 hspi的调试
这一两个礼拜基本上都在爬这个坑,功夫不负有心人。终于搞定了,其实非常简单。以为这个东西有多么的复杂,其实不是这样的。被一些网上博主给误导了!8266端我用的是:ESP8266_NONOS_SDK-3.0\examples\peripheral_test\user\spi_test8266做从机 单片机做主机可以成功的往8266寄存器 SPI_W0----SPI_W7写入数据可以成功的读8...
2019-06-20 16:18:11 2986 11
原创 7-2-SQL 数据示例
一、常用函数的介绍QSqlDatabase 类是Qt中用于管理数据库连接的类。它提供了创建、配置、打开和关闭数据库连接的方法。1.addDatabase 函数2.setDatabaseName函数3.setHostName、setUserName、setPassword 函数4.open、isOpen 函数5.close函数6.lastError函数。
2024-06-24 14:31:50 529
原创 7-1-SQL语法介绍
EXISTS谓词用于测试子查询的结果是否为空表,若子查询的结果集不为空,则EXISTS返回TRUE,否则返回FALSE。再执行外查询,若students表中某行的stuentid 列值等于子查询结果表中的任意一个值,则该行就被选择到最终结果表中。●expression_list:需要插入的字段值表达式列表,其个数应与记录的字段个数一致,若指定要插入值的字段felds list,则应与fields list的字段个数相一致。这种子查询可以认为是IN子查询的扩展,它是表达式的值与子查询的结果进行比较运算。
2024-04-07 13:33:43 961 2
原创 5.6 误差相关统计与计算
Min-Max归一化不改变数据的分布。其缺点为,过度依赖最大最小数,且容易受到离群点、异常数据的影响。标准差,又称均方差,是离均差平方的算术平均数的平方根,用σ表示。CV:在概率论和统计学中,变异系数,又称“离散系数”(英文:coefficient of variation),是概率分布离散程度的一个归一化量度,其定义为标准差 σ。方差,不仅仅表达了样本偏离均值的程度,更是揭示了样本内部彼此波动的程度,也可以理解为方差代表了样本彼此波动的期望。2、X轴为研发样机归一化数据,Y轴为标准机测试数据,画线即可。
2024-01-25 14:38:22 1343
原创 1.33 定时器总结篇
auto-reload prelod:其表示如果中途修改了ARR的值,是本次比较的时候就生效呢,还是在下一个比较周期的时候再生效。为0,则代表本周期就生效,即没有buffer。从上面的描述中的"buffer"字眼,可以知道ARR的值是有一个影子寄存器的!如上图所示,定时器主要有几个部分组成:最上层的时钟部分,中间的时间计数部分,左下的输入捕获部分和右下的输出比较部分。其中时钟的来源很多,内部时钟是用的最多的,内部时钟一般是来自于APB总线的时钟;定时器本身有一个预分频器PSC,是需要设置的重要参数之一。
2023-10-19 10:46:30 188
原创 5.4双积分ADC工作原理
设,V0 为电容上的初始电压值;V1 为电容最终可充到或放到的电压值;Vt 为t时刻电容上的电压值。exp函数即指数函数:e的n次方的函数,自然常数e=2.718281828459045。以2为底,求2的多少次方为4,即2的2次方为4。以2为底,求2的多少次方为8,即2的2次方为8。:以10为底数的对数,对数是对求幂的逆运算。:以2为底数的对数,对数是对求幂的逆运算。以2为底,求2的多少次方为n。#log默认以e为底。
2023-09-15 10:53:09 864
原创 4.5 指针与数组的转换
rel_addr1 相邻之间相差sizeof(save_pakage_t)rel_addr2 相邻之间相差sizeof(pakage_t)从上可以看出,地址转换到数据,数组加一,地址加整个结构体长度。
2023-09-13 12:24:55 267
原创 5.2 一阶低通滤波
一阶滤波算法是比较常用的滤波算法:其中,X为输入值,Y为滤波后得输出值,a为0~1之间的滤波系数。一阶滤波相当于是将新的采样值与上次的滤波结果计算一个加权平均值。a的取值决定了算法的灵敏度,a越大,新采集的值占的权重越大,算法越灵敏,但平顺性差;相反,a越小,新采集的值占的权重越小,灵敏度差,但平顺性好。
2023-05-23 16:24:08 395
原创 2.18 使用keil自带软件调试IO
ODR 是一个端口输出数据寄存器也只用了低 16 位。该寄存器为可 读写,从该寄存器读出来的数据可以用于判断当前 IO 口的输出状态。而向该寄存器写数据,则可以控制某个 IO 口的输出电平。该寄存器的各位描述如下图所示:使用如下:如上图所示,勾选即可控制LED灯,PD3 PD4、 PD5。
2023-05-10 15:20:22 1502
原创 1.21 Cubemx_STM32F4 —IAP升级3(从FLASH中启动)代码举例:
实现的功能:芯片STM32F446ZETX,从SD卡读取升级文件,然后写入到flash,启动芯片。boot起始地址:0X08000000 /flash起始地址app地址:0x08020000。
2023-04-18 09:27:49 262
转载 5.1 移动平均滤波器
加权移动平均滤波器是对移动平均滤波器的改进。采用加权移动平均,既可以做到按数据点的顺序逐点推移,逐段平均,使不规则的数据点形成比较平滑的排列规则,又可以通过权数的设定使离当前值距离不同的数据,所起的作用不同。
2023-02-09 13:25:05 631
原创 1.7 Cubemx STM32F429_RTX FATFS 库函数讲解(三)
if(finfo.fattrib == AM_ARC),意思是只对存档文件进行处理;<ByteToRead,即本次读取到的字节小于准备读取的字节,说明读指针已到达。例程:此处参考酷学玩例程,以读取的方式打开文件,然后将文件内容通过串口输出。a) *FileObject : 指向文件对象结构体的指针。b) *Buffer : 指向存储读取到的数据的缓冲的指针。c) ByteToRead : 准备读取的字节数。ByteRead 值等于本次读取到的字节数,若。1. 这个函数可以读取文件的内容。
2023-02-01 16:59:54 875
原创 2.17 STM32 SysTick—系统定时器
SysTick—系统定时器是属于 CM4 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit 的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK 等于 180M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生一次中断,以此循环往复。因为 SysTick 是属于 CM4 内核的外设,所以所有基于 CM4 内核的单片机都具有这个系统定时器,使得软件在 CM4 单片机中可以很容易的移植。
2023-01-10 10:33:11 799
原创 2.16 SPI协议的4种模式
四线控制SDO - 主设备数据输出,从设备输入 对应MOSISDI - 主设备数据输入,从设备输出 对应MISOSCLK - 时钟信号,由主设备产生CS - 从设备使能信号,由主设备控制。
2022-12-30 13:53:36 1582
原创 5.3 常见的电感式和电容式感测原理及应用
就线圈的形状而言,因为圆形线圈可为给定尺寸的电感器提供更高的 Q 系数,所以建议使用圆形线圈。电容式液位感测允许采用非接触式液位感测,与容易生锈的机械式液位感测器相比,它能够提供更可靠的解决方。与传统的机械式按钮相比,非接触式电感式按钮由于按钮表面的磨损更少而具有更长的储存寿命。常见应用包括:电器(洗衣机、烘干机、冰箱、炉灶)上的旋钮、风扇转速计数,以及工业应用中的轮齿计数。基于电感的技术是金属检测的。常见应用包括:汽车信息娱乐按钮,工业设备和 POS 终端上的按钮,以及智能手表和扬声器上的按钮。
2022-12-21 09:47:02 3268
原创 1.32 Cubemx_STM32F429串口中断+空闲中断
有时候串口接收数据时,没有帧头与帧尾,单纯使用单字节中断接收数据,不太好断帧。如果单纯使用空闲中断接收数据,当帧内数据不连续或者黏包,使用空闲中断接收就会出现接收的数据小于或者大于帧长度,比较难断帧。解决办法发送命令,等待返回数据,利用单字节中断将接收的数据压入缓存堆栈,当发生空闲中断后,判断缓存里的数据是否达到帧长度,如果是,解析数据,清空缓存;否则继续接收数据,知道达到帧长度,然后解析数据,清空缓存。发送命令,等待返回数据,如果产生空闲中断,数据压入缓存堆栈,判断是数据长度是否完成,如果是,解析数据,清
2022-12-05 10:44:44 1467
原创 1、Canopen 轻松入门
CAN 标准帧格式 即 11bit 的 ID 域,以尽量减小传输时间;5.1 所示,为对象字典索引区域定义,其中标绿色底纹的通讯对象子协议区和制造商特定子协议区是用户需要关注的区域。
2022-09-27 18:58:45 23840 6
原创 2、Cubemx_canfestival对象字典生成工具环境搭建
其中canfestival.h文件是函数接口定义(声明),函数内容需要自己实现(位于:app\canopen目录下canopen_drv.c);Canopen_drv.c和canopen.h自己建立,DPCRMaster.c DPCRMaster.h来自刚才建立的对象字典。之后会得到1个对象字典文件(*od,相当于一个工程文件,方便下次再此基础上编辑),1个c文件,1个h文件。CANOpen\src目录下12个.c源文件,来自Canfestival->src目录下的12个源文件;
2022-09-16 14:34:42 961
原创 5.3 温度校准曲线计算
温度校准表通过外部命令比如串口等传输进来,校准表是偏差温度:Modify_55Degree_Bom=标准温度-测试的实际温度。那么求65℃的实际温度?
2022-05-06 13:56:49 931 1
STM32_DSP.rar
2020-02-28
9_TcpAndUdp_singlelineSPI_AP.rar
2019-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人