- 博客(85)
- 资源 (9)
- 收藏
- 关注
原创 一、对42步进电机使用演示记录
主要参数根据标识得到:电流:1.7A 即驱动器上选择时至少要大于1.7A。步距角:1.8°,42电机转动时的最小角度接线方式:根据步进电机标识的颜色于字母和驱动器上标识的字母一 一对应连接。步进电机驱动器。
2025-03-21 22:16:57
381
原创 一、对lora_sx1278v1.2模块通信记录梳理
一、通信测试:注意:1、检查供电是否满足。2、检测引脚是否松动或虚焊。3、检测触发是否能触发。引脚作用:SPI:通信(仅作一次初始化,初始化后会进行模块通信返回测试,返回值和预定值相否即报错,并不会进入接收于发送中)NSS:片选(输出)RST:复位(输出)D0:信号通知(输入)D1:信号通信(输入)dirver说明:比较原本的驱动文件删减了cad相关文件以及阻塞相关的发送,接收相关的内容。对spi的发送接收函数做了更改。驱动代码:.chalhal调用文件.hlora模块
2025-03-09 19:36:19
779
原创 一、在freertos中串口接收方式的记录
1、需要开启dc和ic即数据和指令缓存功能2、对于mdk而言无需开启,对ide需要开启3、用于设置中断过滤级别,凡高于该级别的中断指令会别过滤掉,即freertos系统不会打断其上面的优先级中断4、查看优先级别5、默认systick定时器会有警告,更换其他定时器即可。
2025-03-09 18:05:34
876
原创 一、超声波模块
原理(1)采用 IO 口 TRIG 触发测距,给最少 10us 的高电平信呈。(即mcu输出一个高电平持续10us脉冲信号。(2)ECHO引脚自动发送 8 个 40khz 的方波,自动检测是否有信号返回;有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;(即:通过mcu检测该引脚的电平状态。修改配置systick。
2025-03-02 19:41:38
875
原创 一、舵机模块的分析与使用
(快)0.5ms —(顺)----(慢)1.5ms(慢)----(逆)-----2.5ms(快)舵机的控制一般需要一个20ms左右的时基脉冲,思路:都是通过tim的pwm来进行控制的,即。1、0~180°舵机:控制类型为旋转角度。2、o~360°舵机:控制类型为旋转速度。180度-----------2.5ms。调整pwm的占空比进而控制舵机的转动,90度-----------1.5ms。135度----------2.0ms。0度-----------0.5ms。45度----------1ms。
2025-03-01 20:03:12
353
原创 一、对iic类模块分析与使用
1、该模块用于获取气压,温度,海拔等数据。vcc,gnd接电源sda ,scl 接iic通信引脚2、该模块使用iic通信,通过iic发送请求相关类的寄存器值,芯片获取对应寄存器返回的数据。所以使用的时调用HAL_I2C_Mem_Write函数3、调用:.h文件.c文件mpu6050驱动代码1、模块主要对外输出加速度,陀螺仪,温度等数据vcc,gnd 接电源scl,sda iic通信引脚xda,xcl,iic主机通信引脚,(作为主机通信使用)ad0,iic地址配置引脚int,中
2025-03-01 19:21:57
645
原创 一、旋转编码器模块分析与使用
该模块配合定时器的encoder使用时,可通过旋转来进行调整记录编码的数值。(通过旋转编码器的数值与字母建立对应关系,即可进行打字编码)引脚说明:vcc,gnd,供电使用sw,相当于按键ioclk 相当于a脉冲dt 相当b脉冲原理:通过记录a和b两段脉冲之间的脉冲差来进行脉冲计数。在cubemx上配置。
2025-03-01 18:02:45
227
原创 一、烟雾+土壤湿度传感器模块分析
1、烟雾传感器模块2、土壤湿度传感器模块其基本都是通过检测电压变化而进行的,使用adc进行采集数字信号的变化,进而得到想要的模拟量值来。其中涉及到很多数字信号和模拟量之间的关系,例如温度变化到导致的电压改变,又或是重量变化导致电压发生改变等等,这些变化在特定环境(如常温常压)与电压呈现出一点的线性关系。通过adc采集电压变化的数字信号,就能得到与之对应的模拟量值来。
2025-03-01 16:58:32
236
原创 一、对4*3按键模块编程分析
说明:1、横着4排,竖着3列,加起来共7组,所以对外引出7根线。2、根据排针终端引脚又可分两类。即横排和竖列对应的引脚。
2025-03-01 16:34:05
142
原创 一、hal库配置0.96寸oled屏幕+tftlcd屏幕演示
一、硬件iic配置(使用oled演示)图省事复制即可(注意:从机地址0x78或0x7a)//初始化void MX_I2C1_Init(void){ hi2c1.Instance = I2C1; hi2c1.Init.ClockSpeed = 100000;//标准 hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;//对应标准 hi2c1.Init.OwnAddress1 = 0x78;//第一个设备自己的地址 hi2c1.Init.Addressin
2024-08-22 16:05:05
587
原创 一、在cubemx上配置sd和fatfs示例演示
注意:f_open后写和读取要分开操作,即写完后f_close以保持写入的内容,当需要读取时重新打开文件进行读取。
2024-08-15 18:59:02
805
原创 一、对ST的系统时钟的理解与笔记
一、对于系统的启动和初始化流程1.启动流程系统启动文件startup_xx.s进行系统并调用复位中断复位服务程序。在复位中断服务程序里调用SystemInit函数,此函数在文件system_stm32f4xx.c里面之后调用编译器封装好的函数__main ,进入到main中执行用户的函数2.初始化流程在main函数中的重要初始化HAL_Init函数即HAL库初始化函数,在stm32f4xx_hal.c中进行配置。在system_stm32f4xx.c中有关于HSE_VALUE的配置,当时钟不匹配时
2022-04-28 15:50:32
1021
原创 一、对MODEBUS RTU方式通信学习笔记
一、首先1、对于寄存器操作的一些宏进行理解。#define SET_BIT(REG, BIT) ((REG) |= (BIT))//设置寄存器的第bit位值为1,SET_BIT(RCC->AHB2ENR,1) 或者 SET_BIT(RCC->AHB2ENR,2) #define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT))//清除寄存器的第bit位值为1的值,即将第bit位置0,CLEAR_BIT(RCC->CR, 64) #def
2022-04-27 20:24:27
2725
原创 一、cubeide的使用与笔记
一,应用使用**1.**使用CubeIde 时生成hex或者bin,进行下载配置工程右键》Properties》C/C++ Build 》Settings 》找到Build Steps选项卡,在“Post-build steps”的“Command”输入以下命令生成hex:arm-none-eabi-objcopy "${ProjName}.elf" -O ihex "${ProjName}.hex"生成bin:arm-none-eabi-objcopy "${ProjName}.elf"
2022-04-26 14:42:50
2329
原创 一、单向、循环、双向链表流程的应用的演示。
一、链表流程的演示。(1)主要是链表的初始化流程,以及配置演示。使用的环境为gcc编译环境,环境配置查看往昔文章。(1)单向链表#include <stdio.h>#include <string.h>#include <stdlib.h>//--------------------------------------------------------单向链表 typedef struct node { int data; stru
2022-03-31 11:17:12
1327
原创 一.静态库和动态库的创建与调用。
1.创建静态库:static_test_sort.h#define funtype int //变量类型funtype Sel_sort(funtype *a, funtype len); //选择排序funtype bub_sort(funtype *a, funtype len); //冒泡排序funtype insert_sort(funtype *a,
2021-12-29 20:27:57
694
原创 一对于开关电源的简单整理:
一.首先电感和电容,电阻作为常见的电源电路的元器件:有着各自的作用:电阻:并联分流,串联分压特性。二极管:整流作用(单向导通性)等。(一).“电容通交流阻直流原理:电容的阻通性能是随电流的频率变化的。当交流电流接通时,正极板不断聚集正电荷,负极板不断聚集负电荷,这是电容的充电。充电、放点,就形成了电流。频率越高,充放速度就越快电流就越大其他作用:1)旁路旁路电容是为本地器件提供能量的储能器件,它能使稳压器的输出均匀化,降低负载需求。就像小型可充电电池一样,旁路电容能够被充电,并向器件进行放电。
2021-12-17 18:14:21
683
原创 一.关于ymodem协议的配置总结
一.对ymodem协议的基础通信结构解读:(1)Ymodem 有两种帧格式,主要区别是信息块长度不一样。(2)帧头表示两种数据帧长度,主要是信息块长度不同。(3)数据包序号只有1字节,因此计算范围是0~255;对于数据包大于255的,序号归零重复计算。(4)【1】以SOH(0x01)开始的数据包,信息块是128字节,该类型帧总长度为133字节。【2】以STX(0x02)开始的数据包,信息块是1024字节,该类型帧总长度为1029字节。(5)Ymodem采用的是CRC16校验算法,校验值为2字
2021-12-17 14:39:12
4265
原创 一.对于串口的打印重定义和打印功能函数定义
一.串口1的打印重定义。#pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; }; FILE __stdout; //定义_sys_exit()以避免使用半主机模式 void _sys_exit(int x) { x = x; } //重定义fputc函数 int fputc(int ch, FILE
2021-12-16 08:58:31
1166
原创 一.stm32的内部flash操作笔记
一.在文件stm32f4xx_hal_flash_ex.h中有对应的文件标号定义如下:/*--------------------------------------- STM32F40xxx/STM32F41xxx -------------------------------------*/ #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || defin
2021-12-13 16:25:14
855
原创 一.独立看门狗的理解笔记
一.独立看门:(1)首先独立看门狗和窗口看门狗的两者异同点分析:1>·窗口看门狗是需要精确的us的一种系统复位机制,同时还有中断配合分析。应用在程序运行超时要求较高的场所。加粗样式2>·独立看门狗则是以精确到ms或者s的一种复位机制触发的复位。简单分析:窗口看门狗更加的安全可靠,独立则只能满足需要复位的功能。(2)独立看门狗参数配置依据:分频系数有如下几个选项:独立看门狗的计数器是一个 12 位的递减计数器,最大值为 0XFFF,当计数器减到 0 时,会产生一个复位信号:
2021-12-12 23:20:54
904
原创 一.窗口看门狗串口记录笔记
一窗口看门狗的原理:简单来讲:就是有个递减计数器:从(0x7f)127开始递减——>64(0x40).并有一个窗口值来划分:递减到喂狗的有效区域。(值:0x7f~0x40)其中FPCK1:程序:/* WWDG 配置函数 * tr :递减计时器的值, 取值范围为:(127)0x7f~0x40(64),超出范围会直接复位 * wr :窗口值,取值范围为:0x7f~0x40 * prv:预分频器值,取值可以是 * @arg WWDG_PRESCALER_1: WWDG count
2021-12-07 17:58:21
493
原创 一.对于flash芯片的存储区的总结
一.对于flash的存储的区分:1.假设芯片的flash大小为 1mb,则块区:16块 即64kb为一块区扇区:256个扇区 即4kb为一扇区页: 一个扇区有16页,即256byte为一页名称值块区一个1mb大小的flash有16个块扇区一个块区有16个扇区页一个扇区有16页2.依此类推,可知任意大小的flash存储的区域大小。(此为外部存储flash芯片的划分原则)。对于mcu内部flash芯片的存储的划分,由其芯片说明手册中由介绍。一般也遵循上
2021-11-11 09:19:23
6407
原创 一.上位机和串口间的数据交互处理流程。
1.头文件的中的使用的变量定义://***********************************串口相关***********************************************//enum uart_statu_type{ UART_POWER_UP,//上电状态 UART_STANDBY, //初始化串口状态 UART_RUNNING, //初始化完成后的正常状态 UART_RECEIVING,//正在接收的状态 UART
2021-11-09 14:21:52
1025
原创 一.关于vscode配置快速文件注释和函数注释功能。
1.打开配置2.格式如下:此类注释实际使用的是一种打印输出:文件中有实例说明,这不光可以配置注释还可以配置for,while以及switch等,需要自定义的函数。(注意文件类型的对应的关系,c.json仅适用于c,c++.json又需要进行配置){ // Place your snippets for python here. Each snippet is defined under a snippet name and has a prefix, body and // descrip
2021-11-09 10:51:12
1981
原创 一.关于linux内核链表的简单应用。
1.找到linux的内核链表所在位置:(1)一般在linux内核源码包解压后的:X:\linux-5.8.8\include\linux目录下:存在这list.h文件,该头文件是调用内核链表的头文件,所以使用时需要添加文件到本地,或者以绝对路径进行调用。这里就不展开说明了,(其实list.h的每个函数都有英文的注释说明,多读该头文件,从该头文件中可以学到很多对于链表的使用和借鉴之处)如下是头文件中所有的函数名:从上面的函数名中通常可以,见名知意。大致了解起作用。2.简单应用程序框架:(1)
2021-10-28 18:14:08
310
原创 一.对ST官方所提供stm32实例资料说明。
一.首先ST官方提供了示例资料https://www.st.com/zh/ecosystems/stm32cube.html#products下载连接。二.对cube压缩包解压:以f4的cube包进行介绍:1.2.3.4.对于手动初始化外设,可以通过文件内的文件进行参考配置,如不熟悉cubemx图形化编程配置的,可以以此为参考进行手动的文件配置。...
2021-10-12 18:28:15
273
stm32can通信示例
2024-08-17
STM32F4上游戏摇杆模块JOYStick的测试源码
2020-12-01
双向循环链表.zip
2020-08-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人