自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (4)
  • 收藏
  • 关注

原创 踩坑STM32CubeMX生成Makefile工程无法使用printf(“%f“)

STM32CubeMX无法输出浮点数%f

2024-02-02 23:13:14 253

原创 Linux Server 终止后立即重启报错 bind error: Address already in use

bind error: Address already in use

2023-10-22 23:01:00 755

原创 单片机的RAM/ROM/Flash以及Keil中的相关信息

单位:字节;1024字节=1KB单片机上电后程序从Flash/ROM中读取,相当于硬盘在RAM中执行程序,相当于内存Code:包含两部分,代码和数据RO-data:read only data 只读的数据存放程序中的常量RW-data:read write data 可读写的数据存放初始化为非0值的全局变量ZI-data:zero initialized data 零初始化的可读写的变量存放未初始化的全局变量和初始化为0的变量RO size:C

2023-03-29 11:58:09 373 1

原创 配置Clion用于STM23开发(Makefile)

配置CLion用于STM32开发,摒弃CubeMX旧版本SW4STM32工程,基于Makefile工程

2023-03-08 10:16:46 974 1

原创 Keil中对STM32串口重定向printf的坑

STM32 HAL库 CubeMX 串口重定向

2022-11-03 20:39:11 1398 2

原创 舵机转向环-数据融合

舵机,转向环,位置式PD

2022-09-08 16:25:13 518

原创 直流电机速度环-MATLAB仿真

直流电机速度环,增量式PI控制器,MATLAB仿真

2022-09-08 16:23:22 1736 2

原创 初识哈希表——哈希表是个啥?

是什么?哈希表是一种根据输入信息在已有数据库中快速查找匹配对于信息的算法。为什么需要?具体应用场景是,比如在图书管理系统中,用户输入一个图书名称,程序需要在整个图书数据库中找到对应的书籍。如果这个数据库是一个数组的话,那么我们会从0开始遍历数组,直到找到对应的书籍,记录下这个位置的号码并读取信息。这样从头开始遍历整个数组的算法,最大的弊病就在于当数据量过大时,需要耗费的时间将是很不乐观的。当然我们可以通过使用二叉树或是更好的数据结构来存储数据,但这并不是这个算法所要解决的重点问题,先按下不表。

2022-03-17 00:43:27 1301

原创 JDY-31蓝牙模块简单通信

引脚简介STATE:连接状态引脚:未连接低电平,连接后高电平RXD:TXD:GND:VCC:3.3VEN:空简单通信在通信中充当一个中转站,单片机通过TXD、RXD与模块连接,上位机通过蓝牙与模块连接单片机通过TX、RX发送数据到蓝牙模块,蓝牙模块立即通过蓝牙转发到上位机;反之亦然AT指令设置蓝牙需要注意的是,使用AT指令修改蓝牙设置时,需要保证蓝牙没有处于通信状态......

2022-01-25 19:48:18 28234 3

原创 PCB设计中数字地与模拟地的地分割

前言根据我们学习过的电路知识,电路中的地都是要接到一起的,然后接入大地作为一个电压参考点。在实际应用中我们发现,如果两个模块之间没有做一个共地处理,就会产生各种莫名其妙的错误,这其实是因为两个模块之间没有一个共同的参考点。由于没有一个共同的参考点,电信号在传输的过程中就会失真,所以不管是什么地,最终都是要接到一起做为一个0电位参考点的,也就是地的标准要一样如果两个地不接到一起,则会出现一个系统中两个模块的第存在压差,即0电位不同,电信号自然也无法在这两个模块之间传输既然无论什么地,数字地或模拟地都要接

2021-12-21 00:17:16 3124

原创 PID算法-理论分析

连续PID算法典型PID算法框图r(t):设定状态量y(t):实际状态量e(t):当前误差u(t):控制 器输出P-比例环节up(t)=Kp∗e(t)=Kp[r(t)−y(t)]u_{p}(t)=Kp*e(t)=Kp[r(t)-y(t)]up​(t)=Kp∗e(t)=Kp[r(t)−y(t)]当误差存在时才会输出up(t)比例调节的过程就是即时成比例地反应控制系统的偏差信号e(t)。偏差一旦产生,通过Kp*e(t)产生控制作用以减小偏差若误差e(t)=0,则up(t)=0

2021-11-30 23:48:00 2062

原创 51单片机IIC驱动OLED

IIC模拟#include "iic.h"#include <reg51.h>#include <intrins.h>//定义IO口,若需要修改IIC引脚直接修改此处即可sbit IIC_SCL=P1^0;sbit IIC_SDA=P1^1;//大于4us或4.7us的延时void IIC_Delay_4us(){ _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();}//1us的延时void IIC_D

2021-11-29 23:39:12 5301 3

原创 STM32驱动超声波测距模块HC-SR04

简介

2021-11-25 14:55:28 2315

原创 腾讯云-物联网开发平台IoT Explorer

简介

2021-11-23 17:33:56 4747

原创 STM32配置引脚时遇到的问题

寄存器配置IO输入输出问题来源:移植原子哥的IIC例程时,想修改一个SDA和SCL的引脚,却发现原子哥有一部分代码使用了寄存器编程。原函数如下://IO方向设置#define SDA_IN() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;} //PB7输入模式#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<

2021-11-14 20:49:58 1566 2

原创 腾讯云-物联网通信IoT Hub

简介

2021-11-14 11:43:23 5843 3

原创 ESP8266和腾讯云的使用

ESP8266简介

2021-11-09 19:59:16 7062

原创 MG90S舵机-基础角度控制

MG90S舵机1. 简介

2021-10-30 00:13:21 6595

原创 double类型小数转换为char*类型字符串

/*********************************************************************************************************** 函 数 名: FloatToStr* 功能说明: 将一个浮点型数字转换为一个字符串,最多支持三位小数(此时len=9)* 形 参: 1. x:要转换的数字 2. str:转换后得到的字符串 //注意不要传入char* 3. len:字符串的长度(算上符号位和

2021-10-11 01:12:11 3188 3

原创 直流电机-基础PID控速

直流电机控制1. 编码器1.1 简介用来测量机械旋转或位移的传感器,能够测量机械部位在旋转或直线运动时的位移位置或速度等信息,并将其转换成一系列电信号根据检测原理分为光电编码器(最广泛)、磁编码器(霍尔元件,精度较低)和感应式编码器(可靠性高,高端领域)根据运动方式分为线性编码器和旋转编码器根据编码类型分为增量式、绝对式、混合式1.2 原理分辨率:编码器能够分辨的最小单位精度:编码器每个读数与转轴实际位置间的最大误差,通常用角度、角分或角秒来表示最大响应频率:编码器每秒输出的脉冲数

2021-10-10 00:22:04 4446

原创 修改Keil工程的文件名

在工程文件目录中,将.uvprojx和.uvoptx重命名为目标文件名在工程文件目录中,将包含原工程名的文件删除,包括编译生成的Objects、Listings和DebugConfig文件夹打开重命名好的工程,点击品字形图标,将Progect Components下的工程名也修改为目标文件名打开重命名好的工程,点击魔术棒图标,在OutPut选项,将Name of Executable后的文件名也修改为目标文件名...

2021-09-09 22:33:06 4195

原创 int类型整数转换为char*类型字符串

/*********************************************************************************************************** 函 数 名: IntToStr* 功能说明: 将一个整形数字转换为一个字符串* 形 参: 1. x:要转换的数字 2. str:转换后得到的字符串 * 返 回 值: 无**********************************************

2021-09-09 20:42:08 1139

原创 Keil5中 go to define 功能无法使用

解决方法:点击魔法棒选中Output选项勾选Browse Information重新进行全局编译

2021-09-05 23:22:14 2329

原创 VS 2019 打包.exe文件

如图将Debug改为Release在资源管理器 -> 项目右键 -> 属性如图将运行库改为 多线程调试(/MTd)

2021-09-05 23:18:10 124

原创 AD20 PCB笔记

1. 高亮某个网络高亮:Ctrl + 鼠标左键点击某个网络端口取消:Shift + C2. 晶振处理晶振的走线尽量短X. 快捷键X.1 同时选中多个Shift + 鼠标左键X.2 元器件放置板子背面鼠标左键选中 + LY. 规则Y.1 走线最小间距大部分生产厂家支持最低6mil(加钱可以做更小)Y.2 过孔直径Y.3 丝印实测嘉立创可做,效果不错Y.4 线宽信号线:默认0.2mm电源线:默认0.254mm注:允许的情况下可以做更粗的线...

2021-08-24 15:14:06 5984

原创 STM32笔记之FreeRTOS

文章目录1. RTOS简介1.1 基本概念1.2 基本名词1.3 FreeRTOS2. 任务2.1 基本属性2.1.1 优先级2.1.2 任务控制块/任务堆栈任务控制块任务堆栈2.2 状态2.3 操作3. 机制简介3.1 队列3.2 信号量3.3 任务通知3.4 低功耗模式3.4.1 STM32支持的低功耗模式3.4.2 空闲任务的钩子函数实现的低功耗3.4.3 Tickless模式3.5 列表和列表项3.6 内存管理4. 任务相关API函数4.1 任务创建和删除4.1.1 创建:xTaxkCreate()

2021-08-21 20:29:28 843

原创 STM32驱动AD9833

18. AD983318.1 简介DDS信号发生器模块,工作电压为2.3V~5.5V可编程波形发生器能够产生正弦波、三角波、方波,频率范围为:0~12.5MHz主频时钟为25MHz时,精度为1Hz;主频时钟为通过三个串行接口(SDATA、SCLK、FSYNC)写入数据,一个输出信号接口(VOUT)输出波形18.2 程序逻辑(1) 初始化对应输出IO口,总共三个IO口//IO操作#define AD9833_SDATA PDout(1) //SDATA#define AD9833_

2021-08-21 20:26:04 9876 14

原创 STM32单片机IIC驱动OLED

8. OLED8.1 简介多接口方式:并行接口(6800、8080)、4线SPI接口、IIC接口工作电压:3.3V(5V可能会烧坏OLED)分辨率:常见0.96寸为128*648.2 程序逻辑(IIC)有关普通IO口模拟IIC见 15. IIC 一章(1) 写命令和写数据函数//写命令void OLED_send_cmd(unsigned char o_command){ IIC_Start(); IIC_Send_Byte(0x78);//OLED地址

2021-08-21 20:24:40 553

原创 STM32笔记之IIC/SPI

14. SPI14.1 简介串行外围设备接口,高速、全双工、同步的通信总线,采用主从工作方式主要应用在EEPROM、FLASH、实时时钟、AD转换器、还有数字信号处理器和数字信号解码器之间,通信距离较短,主要用于板内通信14.1.1 四条通信线MISO:主设备数据输入,从设备数据输出MOSI:主设备数据输出,从设备数据输入SCLK:时钟信号,由主设备产生CS:从设备片选信号,由主设备控制14.1.2 移位寄存器一种在若干相同时间脉冲下工作的以触发器为基础的器件,数据以并行或串行的方式输入

2021-08-21 20:19:17 525

原创 STM32笔记之ADC/DAC

10. ADC10.1 简介STM32的ADC是12位(分辨率)逐次逼近型的模拟数字转换器,最大转换速率为1MHz(转换时间为1us),不要让ADC的时钟超过14M,否则会导致结果准确度下降STM32将ADC分为2个通道组:规则通道组和注入通道组,规则通道相当于你正常运行的程序,而注入通道呢,就相当于中断。也就是,注入通道的转换可以打断规则通道的转换不同的通道的数据存储在不同的通道寄存器中。两个通道转换完成后都能够产生中断或DMA请求以ADC1的通道1进行AD转换为例:单次转换模式只执行一次转换,

2021-08-21 20:17:50 1089

原创 STM32笔记之基础外设

4. 外部中断4.1 简介(1)STM32F1的每个IO都可以作为外部中断的中断输入口(2)STM32F1支持最多19个外部中断(3)GPIO和中断线的对应关系:GPIOx.0GPIOx.15(x=A,B,C,D,E,F,G,H,I)分别对应中断线015。这样每个中断线对应了最多9个IO口。以线0为例:它对应了 GPIOA.0、GPIOB.0、GPIOC.0、GPIOD.0、GPIOE.0、GPIOF.0、GPIOG.0而中断线每次只能连接到1个IO口上,这样就需要通过配置来决定对应的中断线配置到

2021-08-21 20:15:43 727

原创 STM32笔记之CubeMX的使用

3. CubeMX3.1 创建一个工程(1) 选择第一个选项:根据MCU创建工程(2) 选择芯片型号注意这个选项要改为Serial Wire(3)配置引脚功能1) 直接点击芯片引脚配置引脚的功能(搜索框通过引脚名称搜索)2) 选择引脚功能后,在该界面进行详细的配置(4) 时钟配置对时钟没有要求的,可直接使用默认配置(详见3.2.2)(5) 设置工程的默认选项1) 第一个是工程名字2) 第二个是工程路径3) 第三个是工程IDE的选择,选择MDK-ARM4) 第四个是堆

2021-08-21 20:10:21 819

原创 51单片机笔记

51单片机笔记文章目录51单片机笔记1. 矩阵键盘2. 定时器/计数器2.1 定时器2.2 计数器3. 中断3.1 外部中断4. 串形口通信5. LCD16026. 点阵7. A/D和D/A工作原理7.1 D/A:数字量/模拟量转换器7.1.1 倒T形电阻解码网络D/A转换器7.1.2 DAC08327.2 A/D:模拟量/数字量转换器7.2.3 ADC0808/08098. 直流电机8.1 L293D9. 步进电机9.1 L2989.2 四相步进电机10. LCD1286410.1 基本代码11. II

2021-08-05 20:06:57 318

HT32F52352最小系统板

HT32F52352最小系统板,可用于合泰杯的比赛,包含原理图与PCB文件 整块系统板带下为4*

2022-02-27

12V输入转5V/3.3V输出电源模块第二版.zip

压缩包中含原理图和PCB文件。该电源模块将输入的12V直流电转换为5V和3.3V输出(也有直接引出12V部分),具备较大的带负载能力,引出5V和3.3V各5个输出端口。也方便移植到自己的主控板上 相比于第一版,加入了六脚自锁开关,在布局上更紧凑 实测可以实现4.96V与3.28V的稳定输出

2022-01-05

ClionSTM32Init.zip

该文件夹的作用主要是帮助我以最短的时间配置出一个熟悉的开发环境 1. CubeMX配置STM32外设 2. Clion进行代码开发 3. printf和scanf函数串口调试 4. 原子哥封装库(delay和sys)

2021-11-11

12V输入转5V/3.3V输出电源模块

压缩包中含原理图和PCB文件。该电源模块将输入的12V直流电转换为5V和3.3V输出(也有直接引出12V部分),具备较大的带负载能力,引出5V和3.3V各5个输出端口。也方便移植到自己的主控板上

2021-10-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除