自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (1)
  • 收藏
  • 关注

原创 【毕业设计-课程设计】-单片机电子密码锁设计

资源链接在文章最后,订阅查看获取全部内容及资料,如需可私信提供硬件。一、 主要功能:1.按键设置6位密码,输入密码若密码正确,则锁打开。显示open!2.密码可以自己修改(6位密码),必须是锁打开时才能改密。为防止误操作,修改密码得输入两次。3.若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。4. 24C02有复位、掉电保存密码功能。按键说明: 排列方式:1-2-3-A4-5-6-B7-8-9-C*-0-# -DABC无定义、 *号键为取消当前操作、#号键为确认、D键为修改密码

2022-11-27 21:01:10 2470 1

原创 【毕业设计-课程设计】-超声波测距

本次设计主要是利用STC89C51单片机、超声波传感器,LCD1602 完成测距报警系统的制作,以STC89C52为主控芯片,利用超声波对距离的检测,系统使用LCD1602 显示距离,然后单片机处理运算,与设定的报警距离值进行比较判断,当测得距离小于设定值时,STC89C52发出指令控制蜂鸣器报警。

2022-11-27 19:29:15 1630

原创 【freeRTOS】操作系统之七-freeRtos移植

​ FreeRTOS包含Demo例程和内核源码(比较重要,我们就需要提取该目录下的大部分文件)。文件夹里面包含的是FreeRTOS内核的源代码,我们移植FreeRTOS的时候就需要这部分源代码;文件夹里面包含了FreeRTOS官方为各个单片机移植好的工程代码,FreeRTOS为了推广自己,会给各种半导体厂商的评估板写好完整的工程程序,这些程序就放在Demo这个目录下,

2022-11-18 12:57:59 718

原创 【freeRTOS】操作系统之六-低功耗模式

对 Cortex-M3 和 M4 内核的微控制器来说,FreeRTOS 已经提供了 tickless 低功耗模式的代码,对于没有支持的微控制器,用户可以在 FreeRTOSConfig.h 文件中配置 portSUPPRESS_TICKS_AND_SLEEP宏定义,来映射实际执行函数。当然,不局限于这种方法,用户有更好的方法,也可以的。SysTick 滴答定时器是一个 24bit 的递减计数器,有两种时钟源可选择,一个是系统主频,另一个是系统主频的八分频,默认的 port.c 移植文件中是用的系统主频。

2022-11-18 12:56:20 1190

原创 【freeRTOS】操作系统之五.-内存管理

FreeRTOS\Source\portable\MemMang下提供了5中内存分配机制的实现一、配置FreeRTOS内存大小在FreeRTOSConfig.h头文件中宏configTOTAL_HEAP_SIZE用于配置内核可用的RAM大小。在heap1.c, heap2.c, heap4.c源文件中,分配的内存实际上是用一个静态数组ucHeap来表示。再具体的实现上,FreeRTOS 内核规定的几个内存管理函数原型。系统内部及用户如果要使用内存,只能通过该函数接口进行申请。。

2022-11-18 12:52:14 1706

原创 【freeRTOS】操作系统之四-事件标志组

配置宏定义 configUSE_16_BIT_TICKS 为 0 时,每创建一个事件标志组,用户可以使用的事件标志是24 个。配置宏定义 configUSE_16_BIT_TICKS 为 1 时,每创建一个事件标志组,用户可以使用的事件标志是8 个。 使用事件标志组可以让 RTOS 内核有效地管理任务,而全局变量是无法做到的,任务的超时等机制需要用户自己去实现。​ 任务间事件标志组的实现是指各个任务之间使用事件标志组实现任务的通信或者同步机制。事件标志组 API 函数。

2022-11-18 12:50:54 570

原创 【freeRTOS】操作系统之三-信号量

​ 二值信号量通常用于互斥访问或同步,二值信号量和互斥信号量非常类似,但是还是有一 些细微的差别,互斥信号量拥有优先级继承机制,二值信号量没有优先级继承。因此二值信号量更适合用于同步(任务与任务或任务与中断的同步),而互斥信号量适合用于简单的互斥访问。​ 和队列一样,信号量 API 函数允许设置一个阻塞时间,阻塞时间是当任务获取信号量的时 候由于信号量无效从而导致任务进入阻塞态的最大时钟节拍数。

2022-11-18 12:49:01 1039

原创 【freeRTOS】操作系统之二-队列

在任何RTOS中,都具有一个重要的通信机制----消息队列。

2022-11-18 12:47:48 764

原创 【freeRTOS】操作系统之一-任务调度

freeRTOS 介绍

2022-11-18 12:44:35 2463

原创 [python][pandas] excel 批量转 csv 格式

pandas

2022-10-20 23:22:38 807

原创 [python][excel] .xlsx 转换为.csv / .html格式 pandas

excel 转 csv格式

2022-10-20 22:14:18 295

原创 uble)RAND_MAX) - 0.5); //随机噪声

#include “stdio.h”#include “stdlib.h”#include “math.h”double frand(){return 2*((rand()/(double)RAND_MAX) - 0.5); //随机噪声}int main(){printf(“Hello world!\n”);float x_last=0;float p_last=0.02;float Q = 0.018;float R = 0.542;float kg;float x_mi

2021-11-24 18:04:26 199

原创 人脸识别 - TensorFlow lite移植到IMX6/树莓派/IMX8开发板上

已经实现了移植opencv 和TensorFlow lite 人脸识别有时间了再写吧

2021-11-22 19:37:39 3311 5

原创 UCOSII源码分析九——相关知识点

内核对象uCOSII中包含的内核对象有信号量、互斥信号量、消息队列、消息邮箱、时间标志组。他们的原理相似,公用同一个数据结构,在系统开始的时候在OSInit (void)进行进行调用初始化函数OSInitEventList(),在变量数组OSEventTbl[OS_MAX_EVENTS]中定义了整个数据控制块存储空间。内核源码与定义任务控制块TCB类似。在函数OSInitEventList()中将事件链表连接在一起,并将事件的类型赋值为OS_EVENT_TYPE_UNUSED。宏OS_MAX_EVENTS

2021-11-22 19:27:21 298

原创 UCOSII源码分析八——空闲任务和统计任务

空闲任务和统计任务1.空闲任务系统初始是在函数OSInit (void)中进行建立空闲函数OS_InitTaskIdle(); 函数内部创建了空闲任务,并将空闲任务的优先级设置为最低:#define OS_TASK_IDLE_PRIO (OS_LOWEST_PRIO)这样在没有任务就绪的时候,会执行空闲函数,空闲任务OS_TaskIdle (void *p_arg)的内容很简单,只是在里面做简单的变量加一OSIdleCtr++;该变量记录了空闲任务调用的次数,同时该变量的增加快慢也体现了cpu

2021-11-22 19:26:15 1000

原创 UCOSII源码分析七——调度器上锁解锁

调度器上锁解锁调度器上锁解锁函数OSSchedLock (void),OSSchedUnlock (void)用于禁止任务调度,让cpu执行当前任务保持cpu 的控制权,解锁后可以进行调度。实现原理很简单,对全局变量锁定嵌套计数器OSLockNesting进行操作,OSLockNesting记录了上锁函数OSSchedLock (void)的调用次数,OSSchedLock (void)中对变量进行加一操作,OSSchedUnlock (void)对变量进行减一操作,在引起任务调度的函数中进行判断,若变

2021-11-22 19:25:05 970

原创 UCOSII源码分析六——定时器(Tmr.c)

定时器(Tmr.c)1. 软件定时器定时器的实现是需要硬件的支持,硬件进行计数递减,当递减到0时触发中断,即时钟节拍。系统开始运行时,OS_TMR_EN 为1 的话,使用定时器功能,在OSInit()中调用OSTmr_Init()函数,对该函数对时间轮进行初始化,并将定时器连接成链表,并在函数内部创建信号量,该信号量即用来进行定时器触发,在系统的时钟节拍到来时执行函数OSTimeTick (void),在函数内部执行全局变量OSTime++; 同时调用OSTimeTickHook();在该函数中实现信

2021-11-22 19:23:53 1426

原创 UCOSII源码分析五——任务优先级与任务调度

一、任务优先级与任务调度任务切换,先保存正在运行任务的当前状态(context),即CPU寄存器中的全部内容,这些内容保存在任务的当前状态保存区(task’s context storage area)也就是任务自己的栈区之中。入栈工作完成后,就要把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行做任务切换所需要的时间取决于CPU有多少寄存器要入栈内核负责管理各个任务,或者说为每个任务分配CPU时间,并负责任务之间的通信,内核提供的基本服务就是任务切换。任

2021-11-22 19:20:57 2963

原创 UCOSII源码分析四——Task.c

Task.cOSTaskDel()和OSTaskDelReq()使用:因为任务可能会占用一些资源和动态内存,如果直接调用OSTaskDel()进行删除是不能释放这些资源的,所以最好是先用OSTaskDelReq()通知要被删除的任务,你马上就要被删了,然后在那个任务中,提前做好一个函数,当检测到自己要被删了,看先释放资源然后在调用OSTaskDel()来删除自身。任务函数OSTaskSuspend()和OSTaskResume()...

2021-11-22 19:18:17 522

原创 UCOSII源码分析三——Sem.c

Sem.c

2021-11-22 19:16:49 150

原创 UCOSII源码分析二—— 邮箱OS_mbox.c

OS_mbox.c

2021-11-22 19:15:17 212

原创 UCOSII源码分析一——相关知识点

知识点休眠:任务驻留在内存中,但并不被多任务内核所调用就绪:任务已经准备好,可以运行,但由于该任务的优先级比正在运行的任务的优先级低,不能运行运行:正在运行挂起:等待某一件事情发生被中断:前后台系统:应用程序是一个while(1)的大循环跑,是后台,前台就是中断程序。非占先式:当前任务不结束,那么高优先级任务就绪了也无法插入,中断可以插入任务。响应中断快,允许使用不可重入函数,不需要信号量来保护共享数据。占先式:最高优先级任务一旦就绪,就能得到CPU的控制权,中断回调函数可以是高优先级任务就

2021-11-22 19:11:13 343

原创 【Python】出现Modify set up

解决方法:pycharm -> files-> settings -> project:… -> project interpreter 选择你的安装的python的正确的路径就行了

2021-11-20 13:53:02 2306

原创 windows 安装python 绘图库 matplotlib

参考光网 : https://matplotlib.org/3.4.3/users/installing.html执行命令即可:python -m pip install -U matplotlib会自动安装一系列的依赖文件库

2021-11-20 12:39:05 549

原创 pid控制

#include “pid.h”#include “led.h”#include “timer.h”#include “usart.h”extern float pwmval;extern char CNT_buf[60];extern char PWM_buf[60];PID pid;/**************************************************************************函数功能:PID参数初始化*************

2021-11-16 23:21:48 142

原创 基于kalman和模糊pid的matlab实现方法

%Fuzzy PID Controlclose all;clear all;a=readfis(‘fuzzpid’); %Load fuzzpid.fists=0.001;sys=tf(5.235e005,[1,87.35,1.047e004,0]);%系统模型%sys=tf(16470,[1,1667,3393]);%系统模型dsys=c2d(sys,ts,‘tustin’); %用双线性逼近法对‘sys’离散化[num,den]=tfdata(dsys,‘v’); %获取离散模型ds

2021-11-16 23:21:12 385

原创 基于kalman和pid的matlab实现方法

%Discrete Kalman filter for PID control%Reference kalman_2rank.m%x=Ax+B(u+w(k));%y=Cx+D+v(k)clear all;close all;ts=0.001;%Continuous Planta=40;b=2732;sys=tf(b,[1,a,0]);dsys=c2d(sys,ts,‘z’);[num,den]=tfdata(dsys,‘v’);A1=[0 1;0 -a];B1=[0;b];C1=

2021-11-16 23:20:26 232

原创 .bat 文件dos comand 批处理学习

@echo off::color 1rem echo usegeecho hello word!echo.offecho.echo.onrem set 用法set ver=abcecho %ver% ::reset the verset ver= set ver_1=def set ver_2=%ver%echo %ver_1% ::set /a 数值表达式set /a a1=1,a2=2set /a res=a1 + a2echo res=%res% s

2021-08-31 23:17:20 104

原创 人脸识别 - 运行TensorFlow lite 官方demo(android studio)

假设你已经成功安装了tensorflow了1 安装Android studio android studio是个用于开发android应用程序的集成开发环境,可以对android应用程序进行基本的编辑、调试,同时支持图形化对控件编辑的功能,在调试时可以实时检测安卓设备的网速、cpu占用率、内存占用率以及图形绘制时间. jdk是Java语言的软件开发工具包,提供了Java语言的编译和运行环境,由于安卓应用程序主要是Java语言编写的,所以jdk是必不可少的。Android Studio要求将Op

2021-05-07 22:17:26 876

原创 人脸识别 - tensorflow lite的介绍

tensorflow lite 定位于设备端智能应用。在台式机上使用tensorflow开发出模型,训练出权重,然后使用转换工具,将模型转换为tensorflow lite的格式。在设备端,tensorflow的解析器会加载这个模型并且进行计算。lite内置NEON指令集,并且支持硬件加速接口。如何使用TensorFlow lite :1. 选择一个模型TensorFlow Lite 允许您在多种设备上运行 TensorFlow 模型。TensorFlow 模型是一种数据结构,这种数据结构包含了在解决

2021-05-07 22:09:28 1466

原创 人脸识别 - PC端安装tensorflow

一、简介二、安装PythonUbuntu中默认的安装了Python3 ,也可以升级到更高版本。另外 官方针对Python2的维护已经在2019年停止。$python3 可以查看到版本号后续安装可能会出现Python版本与tensorflow 不匹配的错误。需要降版本。三、ubuntu18.04安装TensorFlow(CPU版本)#!/bin/bash#install pip3sudo apt install python3-pip python3-dev#install la

2021-05-07 22:03:17 404

原创 人脸识别 - PC端安装 opencv

opencv一,安装opencv(pc)1.去官网下载opencv本教程选用的是opencv3.4.3。下载链接http://opencv.org/releases.html,选择sources版本2.将压缩包移动到你想安装的地方开始解压终端进入压缩包位置:unzip opencv-3.4.3.zip3.进入到解压后的文件包中cd opencv-3.4.34.安装cmake工具:sudo apt-get install cmakesudo apt-get update5.安装依赖

2021-05-07 21:51:52 538 2

原创 Cmake学习详细笔记(8) ——自定义编译选项

案例四:自定义编译选项1). 源文件结构.├── CmakeLists.txt├── config.h.in├── main.cpp└── students├── CmakeLists.txt├── student_pub.cpp└── student_pub.h2) .编写 CMakeLists.txt#cmake mini ~vercmake_minimum_required(VERSION 2.8)#project infoproject(Studdent3)messa

2021-01-25 22:09:34 1179

转载 Cmake学习详细笔记(7) ——不同目录多文件

案例三:不同目录多文件1). 源文件结构.├── CmakeLists.txt├── main.cpp└── students├── CmakeLists.txt├── student_pub.cpp└── student_pub.h2) .编写 CMakeLists.txt第一个CmakeLists.txt:#cmake mini ~vercmake_minimum_required(VERSION 2.8)#project infoproject(Studdent2)#ta

2021-01-25 22:06:33 392

原创 Cmake学习详细笔记(6) ——同目录多文件

案例二:同目录多文件1). 源文件结构.├── CmakeLists.txt├── main.cpp├── student_pub.cpp└── student_pub.h.编写 CMakeLists.txt#cmake mini ~vercmake_minimum_required(VERSION 2.8)#project infoproject(Studdent2)#target exe**add_executable(Studdent main.cpp student_p

2021-01-25 22:04:08 177

原创 Cmake学习详细笔记(5) ——简单源文件

Linux平台cmake 生成Makefile编写的*.Cpp /*.h 文件见附录1.执行文件生成过程1)源文件结构$tree.├── clearCmake.sh├── CmakeLists.txt└── student_pub.cpp$cmake . #生成Makefile├── clearCmake.sh├── CMakeCache.txt├── CMakeFiles│ ├── 3.10.2│ │ ├── CMakeCCompiler.cmake│ │

2021-01-25 22:01:00 248

原创 Cmake学习详细笔记(4) ——语句解析

1,find_package(OpenCV REQUIRED)1)、 find_package()命令首先会在模块路径中寻找 Find.cmake,这是查找库的一个典型方式。具体查找路径依次为CMake:变量CMAKEMODULEPATH中的所有目录。如果没有,然后再查看它自己的模块目录/share/cmake−x.y/Modules/({CMAKE_MODULE_PATH}中的所有目录。如果没有,然后再查看它自己的模块目录 /share/cmake-x.y/Modules/ (CMAKEM​ODUL

2021-01-25 21:52:58 139

原创 Cmake学习详细笔记(3) ——编译选项

1,常用设置及含义set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")-Wall Enable most warning messages.set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthre

2021-01-25 21:48:46 3564

原创 嵌入式常见 c语言笔试题

c语言笔试题1,用预处理指令#define 声明一个常数,用以表明一年中有多少秒。(忽略闰年问题)答:#define SENCONDS_IN_ONE_YREAR (365 * 12 * 60 * 60)ul2, 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。答:#define MIN(a,b) ((a>=b) ? (b) :(a))3, 你怎么样用C编写死循环呢?答:for(;;)死循环里的两个;;代表两个空语句,编译器一般会优化掉它们,直接进入循环体。w

2020-12-15 13:28:23 2363 2

原创 gdb 调试遇到的问题 #0 <unavailable> in ?? ()

(gdb) set sysroot “/opt/pancake-core-sdk/sysroots/armv7ahf-neon-poky-linux-gnueabi”(gdb)(gdb)(gdb) show sysrootThe current system root is “”/opt/pancake-core-sdk/sysroots/armv7ahf-neon-poky-linux-gnueabi"".(gdb) show solib-search-pathThe search path

2020-11-04 18:09:17 6236

剑指offer答案全集解析

剑指offer答案全集解析

2020-11-04

空空如也

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

TA关注的人

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