自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 状态机编程思维学习笔记(C语言)

前言不摸鱼摆烂的第一天目录前言C语言面对对象特性引入函数指针结构体中套用函数指针宏定义中##纯替换状态机概念状态机实现后文C语言面对对象特性引入众所周知,C++是由C语言编写而成,因此,C语言也可以实现一定程度的面对对象编程,接下来为引入状态机的程序,我们先来介绍几个不常用的C语言用法。函数指针众所周知,指针是C语言的灵魂,它不仅可以指向各种变量和自己,并且可以指向函数。先来看正常的C函数void function_name(void *arg);这个函数,我们将参数设置为void形式

2021-10-06 21:33:48 1965

原创 Shapr3D教学----简易手机支架

前言看了点儿Shapr3D,总体来说比较简单,但是感觉好多地方没solidworks严谨。甚至找不到装配体这么弄。挺怪的。。不过总体来说自己随便做点儿小玩意儿这东西还挺好用的。shapr3D基础操作shift+鼠标右键:旋转视线鼠标右键:平移视线鼠标左键:选中预览第一部分,底绘制草图,绘制,约束创建。拉伸绘制带缺口长方形于XY面并添加对应尺寸约束拉伸凸台5mm第二部分,充电桩绘制使用扫琼方法首先于YZ面绘制路径选中之前拉伸后形成的面以及所画草图线点击图标后成

2021-09-22 23:00:51 4683

原创 RT-Thread 判断线程栈使用大小

前言在线程的运行中,往往需要一定的栈空间,这个空间设置的过大会导致其它程序不够用,设置的过小则会导致程序无法顺利运行。方法一般的方法为:设置栈大小为2048通过命令窗口list_thread命令查看线程最大空间用量让后在对线程栈空间进行调节,一般栈空间最大利用率在70%-80%比较合适示例图节自RT-Thread官方教程...

2021-08-26 13:33:15 3665

原创 MPC车辆轨迹跟踪----理论推导

MPC控制简介

2021-08-25 13:38:00 5003 8

原创 CLion_CMake学习笔记

前言CMake简介

2021-08-24 16:28:23 270

原创 MATLAB 二次规划函数的使用以及扩展

二次规划问题简介matlab规划问题箱简介

2021-08-22 15:29:55 3984

原创 电赛准备--STM32F4 HAL库打开FPU

1、FPU作用长话短说,大幅度加强浮点运算速度,这样的话,PID和一些控制算法的速度就可大幅度增长。2、开启步骤2.1、KEIL中打开FPU2.2、KEIL中添加宏定义,__FPU_PRESENT = 1U,ARM_MATH_CM4,__CC_ARM,__TARGET_FPU_VFP2.3、main.h头文件中包含头文件包含#include "arm_math.h"注意F4的FPU只能加速单精度浮点数的运算,也就是float所以我们在设计算法的时候应当多使用float类型的

2021-07-15 16:45:41 1548 1

原创 串级PID构建物理模型分析

前言临近电赛,再次复习一下PID。由于电赛给的控制系统较为复杂,所以这次是以串级PID物理模型分析为主。毕竟只有建立了对应系统的PID模型才能更好的去设计代码和调节参数。至于代码。。大概明天会写个PID的库。。。。大概吧(咕咕咕 )PID的限制PID是线性的控制器及算法。这是怎么得出来的结论呐?很简单我们直接看PID的公式这就很明显了输出U和输入err明显是一个线性的关系什么?你还不知道什么是线性?满足齐次性和叠加性的函数就是线性的。而且,PID控制器最好是控制二阶以下的线性

2021-07-14 01:01:33 591 3

原创 蓝桥杯单片机国赛模块儿总结

前言明天就是国赛了,时间挺快的,得赶紧复习一下了。摸鱼摸到现在,差不多已经放弃了。国赛的模块其实只是比省赛多了几个常见的外设和模块儿,这里就不细述了,具体可以看省赛模块总结目录前言1、串口1.1、串口初始化1.2、串口发送不定字长数据1.3、数字转化字符串2、矩阵键盘3、按键长按4、超声波测距注意事项代码5、数码管消位动态显示6、温度传感器小数的处理后记1、串口1.1、串口初始化串口的配置可以通过STC-ISP来对波特率进行配置STC15拥有多个定时器,因此波特率发生器也可以是定时器2发

2021-06-04 21:00:41 1218 3

原创 STM32HAL库DMA和串口接收不定长字符串

前言前一阵子瞎搞,想整VS2019开发stm32,毕竟优雅的IDE界面谁能拒绝呐?可是最后bug一堆。。。就先放弃了,于是就改回MDK5了。瞎搞的时候就是搞得DMA串口接收不定长信息,既然搞了,总得有点收获吧DMA部分DMA就是一个有特权的搬运工,能在CPU管不着的情况下,自己吧数据从一个地址搬到另一个地址。我们只需要知道告诉DMA:要把数据从哪儿搬到哪儿,一次搬多少,不停的搬还是搬一次就行了我们只需要设置DMA有货就搬,USART有多少搬多少就行了即:循环模式,外设到内存,一次一字节

2021-05-20 15:18:44 910 5

原创 STM32 keil中__IO得意思

__IO解释STM32得库函数中(HAL和LL库都有),存在一个__IO得宏定义#define __I volatile const /*!< defines 'read only' permissions */#define __O volatile /*!< defines 'write only' permissions */#define __IO volati

2021-05-12 16:36:02 5956 4

原创 STM32F429DISC开发板SDRAM(IS42S16400J)实验—基于STM32cubeMX HAL库

前言就在几天由于受到了一点小刺激,狠下心就把F429DISC的开发板给买了,让后就变成穷13了。但是既然买了,就得发挥他的作用,刚好STM32F103已经学完了,拿这个新外设练练手~~~~工具与平台keil5 MDKSTM32cubeMXSTM32F429I discovery开发板discovery开发板 电路图IS42S16400J技术手册STM32F429 手册查阅资料很重要!!!参考原理图 技术手册 利用cubeMX初始化F429的基本时钟配置和debug配置这里不做介

2021-05-09 22:04:49 2161 9

原创 STM32--MPU6050 DMP读角度总结

前言我TM爆肝!!MPU6050简介MPU6050一般为六轴或九轴传感器正常情况下为:三轴陀螺仪(测角速度)三轴加速度仪三轴磁场轴(有些没有)一般测量角度,陀螺仪和加速度仪就够了若想测量角度,通过一些滤波算法,可以将所测速度和所测加速度转换成角度数据。但是MPU6050自带DMP自结算,可将角度数据结算成为四元角,我们只需要移植并调用DMP库函数就行。1.1、引脚说明一般为六个引脚SDA和SCL为IIC通讯引脚VCC、GND不需要多讲当获得数据INT引脚可触发EXI

2021-05-08 20:20:54 9751 10

原创 STM32cubeMX--增量式PID调节电机速度(霍尔编码器)

前言趁你们不注意,我突然更!!目录前言一、直流减速电机与霍尔编码器1.1、编码器介绍与选择1.2、编码器参数1.3、编码器测速原理1.3.1、方向判断1.3.2、速度获取二、STM32cubeMX库配置编码器模式2.1、连线分析2.2、cubeMX设置2.2.1、cubeMX初始化2.2.2、高级定时器编码器模式(CH1,CH2通道)2.2.3、串口DMA2.2.4、PWM输出![在这里插入图片描述](https://img-blog.csdnimg.cn/20210508152419253.png

2021-05-08 16:23:01 41206 116

原创 蓝桥杯赛前一周传感器模块总结

模块总结1、PCF8591通讯方式:IIC通讯步鄹:见代码注释通讯时易错点:①、ADC时每次读取完数据就发送非应答位。②、弱需要DAC功能,不论ADC模式下还是DAC模式下发送功能数据时,控制位第4位必须置1!③、可以关闭中断。驱动代码//IIC读取八位ad转换数值uint8 IIC_GetVal(){ uint8 Val; IIC_Start(); //IIC启动 IIC_SendByte(0x90); //IIC选择地址,并发送写指令 IIC_WaitAck();

2021-04-13 22:40:08 689

原创 C语言---BCD码在时间上与十进制的转换(DS1302)

前言BCD码作为DS1302以及个别时间传感器的是以BCD码的形式来储存数据的,所以,显示与设置数据的时候需要代码手动进行设置。BCD码介绍BCD码是以十六进制方式显示为十进制的计数方式比如:0x00~0x09,代表十进制中的1—90x10代表的并不是传统十六进制所代表的128,而是10,十六进制的abcbdef在bcd码中并不存在。代码Sec代表秒Min代表分钟Hour代表小时加法:Sec++; //按下按键秒时间增加1if((Sec&0x0f) == 0

2021-03-30 15:44:57 2299 1

原创 蓝桥杯单片机组CT107D开发板AD/DA转换一些BUG修复

前言第十届和第十一届已经写完了,但是目前还是有很多bug,打算写几个专门记录本人程序bug的博客。此为PCF8591的电路图,也就是CT107D开发板进行AD转换的主要模块。PCF8591有两个功能一个是AD转换,另一个DA转换,不细谈这两个功能的具体,只谈我目前的bug1、AD测量电压不准:未关闭中断,iic时许较为严格,关闭中断再进行iic读取。读取数据后发送应答位1表示不连续读取2、DA输出不准确DA输出模拟量应紧接再AD转换之后,若两者分开则会对影响输出模拟量!..

2021-03-25 15:53:45 993 1

原创 STM32的GPIO八种功能的描述与认识

前言转眼距离上次看stm32就是一个多月了,今天晚上刚好闲着没事儿就看一下GPIO各模式的作用功能,至于原理,由于模电还没学,暂时害不懂。。。stm32的GPIO一共有8种功能:GPIO_Mode_AIN 模拟输入GPIO_Mode_IN_FLOATING 浮空输入GPIO_Mode_IPD 下拉输入GPIO_Mode_IPU 上拉输入GPIO_Mode_Out_OD 开漏输出GPIO_Mode_Out_PP 推挽输出GPIO_Mode_AF_OD 复用开漏输出GPIO_Mode_A

2021-03-17 22:25:57 1568

原创 蓝桥杯单片机第九届初赛主观题-----彩灯控制系统

蓝桥杯单片机第九届初赛主观题-----彩灯控制系统前言俺又来了,这次连续好几天都没写博客,真不是我偷懒,这次是真的写了好久!各种bug可给我整惨了,让后最近害仔细看了看大佬写的,于是就把格式给改的略微整齐了一点。。。废话不多说,我们开始赛题分析1、硬件框图分析仍然是赛题分析先开始,先看基本硬件框图根据这张图总结一下大概需要的器件以及所需要的特殊功能寄存器输入功能1、模拟输入,IIC通讯下的PCF8591进行AD转换2、按键,定时器0进行间隔1ms的定时器中断进行按键扫描消抖存储功能

2021-03-17 21:39:49 1288 1

原创 蓝桥杯第七届省赛主观题——模拟风扇控制系统

模拟风扇控制系统前言five如我又花了两天才写出来这玩意儿,中途还发现了自己以前好多不规范的地方(悲),于是修修补补算是勉强写出来了。。。太拉了太拉了。因为以前很多的问题都刚改过,所以过几天我打算再写一个基于金沙滩教程的蓝桥杯单片机固定模板,也就是按键扫描和数码管扫描都放在定时器中断中的蓝桥杯固定模板。(开新坑)赛题分析老样子,我们先看赛题,提取出关键内容。先看它给出的功能图片,需要用到的有:输出模块:数码管,LED(PWM显示)输入模块:按键、DS18B20(温度传感器获取数据)让后

2021-03-12 18:18:59 1561 4

原创 蓝桥杯开发板CT107D---使用定时器中断动态刷新数码管的消隐

CT107D开发板的定时器中断刷新数码管的消隐名词位选:选择第几个数码管亮段暄:选择数码管亮什么内容原理(定时器中断刷新数码管原理基于金沙滩51单片机的教程,不做过多解释 )数码管在动态刷新过程中,可能存在本应不亮的地方发生微微的弱光,这种情况该怎么办呐?造成这种情况的原因是,程序没执行一次位选片选的刷新,下一次刷新P0原本的数据就会干扰位选段选。所以我们需要在刷新前进入段选,写入P0=0xff,提前先使数码管阴极的锁存器变成全暗状态,这样残留数据就难以干扰位选段选代码void SMG_

2021-03-12 00:37:03 1422

原创 蓝桥杯第八届赛题----电子钟程序设计范例

前言这里写目录标题前言赛题要求基本要求分析赛题中所需的基础技能1、基本硬件2、基本功能逻辑代码部分逻辑流程图初始化按键功能与状态数详解赛题要求基本要求分析制作一个电子时钟,要求数码管显示DS1302的获取时间以及DS18B20的温度,并使用四个按键进行控制。如图所示,所需的硬件基础驱动有:1、LED灯光开启与关闭(74HC138与74HC573操控)2、数码管动态刷新(74HC138与74HC573操控)(定时器中断控制)3、DS18B20计算温度(单总线通信协议)4、DS1302写入读出

2021-03-08 16:31:17 1062 1

原创 基于野火的STM32学习笔记——RCC系统时钟

基于野火的STM32学习笔记——RCC系统时钟前言目录基于野火的STM32学习笔记——RCC系统时钟前言一、系统时钟的理解二、系统时钟工作框图一、系统时钟的理解系统时钟是一个单片机的心脏与脉搏,就像心脏跳动时,血液才能循环流动一样,当系统时钟跳动(震荡)时,单片机内部的代码才能正常运行。每句代码的运行时间一般是输出的震荡频率取反(不详细展开)。二、系统时钟工作框图...

2021-02-23 17:54:57 538 1

原创 蓝桥杯学习笔记--工厂灯光控制系统(小蜜蜂笔记作业)

文章目录前言一、功能要求1、功能图二、硬件分析1、功能一硬件电路:2、功能二硬件电路:3、功能三硬件电路:4、功能四硬件电路:三、代码1、整体流程(主函数)2、138选择函数与关闭蜂鸣器与串口3、检测,初始化定时器0,串口4、中断下的数码管刷新显示5、按键、串口控制LED①、规定串口控制协议②、串口控制③、按键控制6、控制整合(源码)BUG总结前言本人是某大学一普通大一学生,磨磨唧唧学了一学期51,但没有实践过。听学长学姐推荐蓝桥杯比赛,就报名学习蓝桥杯比赛开发板。于是就有了我想写博客记录学习经历。.

2021-02-08 22:14:16 2280 3

空空如也

空空如也

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

TA关注的人

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