- 博客(58)
- 收藏
- 关注
原创 全志H6-ARMLinux第1天:全志概述、刷机登陆、官方外设库、蜂鸣器、超声波测距
学习平台至于用树莓派,海思,全志都无所谓,初级工程师掌握的是 Linux-ARM 的软硬件架构开发,主要是Linux系统的学习,只有入职后的中高级工程师才会考虑算法或者协议对底层硬件的差异化,第一版本这部分的内容以树莓派讲解,就业学员入职海康威视,OPPO,全志,移远等公司可以完美过度,所以板材的选择根据教程就行,学的是 Linux 系统OrangePi 开发板不仅仅是一款消费品,同时也是给任何想用技术来进行创作创新的人设计的。它是一款简单、有趣、实用的工具,你可以用它去打造你身边的世界。特性。
2023-12-07 18:45:59
2501
1
原创 FreeRTOS第2天:信号量、互斥量、时间标志组、任务通知、延时函数、软件定时器、中断管理
二值信号量其实就是一个长度为1,大小为零的队列,只有0和1两种状态,通常情况下,我们用它来进行互斥访问或任务同步。互斥访问:比如门钥匙,只有获取到钥匙才可以开门任务同步:比如我录完视频你才可以看视频计数型信号量相当于队列长度大于 1 的队列,因此计数型信号量能够容纳多个资源,这在计数型信号量被创建的时候确定的。在多数情况下,互斥型信号量和二值型信号量非常相似,但是从功能上二值型信号量用于同步,而互斥型信号量用于资源保护。
2023-12-02 17:17:29
947
原创 FreeRTOS第1天:freertos介绍及移植、任务的创建与删除、队列
Free 即免费的,RTOS 的全称是 Real time operating system,中文就是实时操作系统。注意:RTOS 不是指某一个确定的系统,而是指一类操作系统。比如:uc/OS,FreeRTOS,RTX,RT-Thread 等这些都是 RTOS 类操作系统。FreeRTOS 是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
2023-12-01 15:31:27
972
原创 STM32F103C8T6第7天:智能小车项目
6. 智能小车:循迹小车基本实现(365.69)硬件接线B-2A – PB0B-1A – PB1A-1B – PB2A-1A – PB10循迹模块(左)DO – PB3循迹模块(右)DO – PB4代码实现基于 smartCar_project1代码(28.smartCar_project6/MDK-ARM)7. 智能小车:循迹小车解决转弯不平滑问题(366.70)硬件接线B-1A – PA0A-1A – PA1B-1A – PB1A-1A – PB10代码实
2023-11-28 23:06:46
1819
1
原创 STM32F103C8T6第6天:adc、iic、spi、温湿度dht11在lcd1602显示
笔记参照:上官一号笔记第5章节;视频参照:上官一号92~103节SP I是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议,比如 AT91RM9200。
2023-11-23 22:20:52
2102
原创 STM32F103C8T6第5天:独立看门狗、窗口看门狗、dma实验
窗口看门狗用于监测单片机程序运行时效是否精准,主要检测软件异常,一般用于需要精准检测程序运行时间的场合。窗口看门狗的本质是一个能产生系统复位信号和提前唤醒中断的6位计数器。当递减计数器值从 0x40 减到 0x3F 时复位(即T6位跳变到0)计数器的值大于 W[6:0] 值时喂狗会复位。当递减计数器等于 0x40 时可产生提前唤醒中断 (EWI)。在窗口期内重装载计数器的值,防止复位,也就是所谓的喂狗。
2023-11-22 18:39:52
1784
原创 STM32F103C8T6第4天:串口实验(非中断和中断)、hc01蓝牙、esp8266WIFI、4g
通过ESP8266模块,实现手机控制wifi插座/风扇/灯。
2023-11-15 20:41:36
406
原创 STM32F103C8T6第3天:pwm、sg90、超声波、距离感应按键开盖震动开盖蜂鸣器
1) 16 位向上、向下、向上/向下自动装载计数器(TIMx_CNT)。2) 16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为 1~65535 之间的任意数值。3)4 个独立通道(TIMx_CH1~4),这些通道可以用来作为:A.输入捕获B.输出比较C.PWM 生成(边缘或中间对齐模式)D.单脉冲模式输出4)可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)的同步电路。
2023-11-07 23:11:03
1143
原创 STM32F103C8T6第2天:按键点灯轮询法和中断法、RCC、电动车报警器(振动传感器、继电器、喇叭、433M无线接收发射模块)
中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。外部中断/事件控制器 (EXTI) 管理了控制器的 23 个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。
2023-11-04 23:27:42
1372
原创 STM32F103C8T6第1天:认识STM32、标准库与HAL库、GPIO口、推挽输出与开漏输出
单片机(Single-Chip Microcomputer)是一种集成电路芯片,把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。寄存器寄存器众多,需要经常翻阅芯片手册,费时费力;更大灵活性,可以随心所欲达到自己的目的;深入理解单片机的运行原理,知其然更知其所以然。
2023-11-02 19:16:38
1299
原创 Linux系统编程_线程:线程、互斥量、条件变量
一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。进程的所有信息对该进程的所有线程都是共享的,包括可执行的程序文本、程序的全局内存和堆内存、栈以及文件描述符。当然,数据的共享也带来其他一些问题(条件变量和互斥锁可解决),有的变量不能同时被两个线程所修改,有的子程序中声明为static的数据更有可能给多线程程序带来灾难性的打击,这些正是编写多线程程序时最需要注意的地方。在面向线程设计的系统中,进程本身不是基本运行单位,而是线程的容器。,所以一个线程的数据。
2023-10-25 18:44:10
122
原创 Linux系统编程_进程间通信第2天: 共享内存(全双工)、信号(类似半双工)、信号量
Linux 信号(signal)对于 Linux来说,实际信号是软中断,许多重要的程序都需要处理信号。信号,为 Linux 提供了一种处理异步事件的方法。比如,终端用户输入了 ctrl+c 来中断程序,会通过信号机制停止一个程序。信号的名字和编号:每个信号都有一个名字和编号,这些名字都以 “SIG” 开头,例如 “SIGIO ”、“SIGCHLD” 等等。信号定义在signal.h头文件中,信号名(的编号)都定义为正整数。具体的信号名称可以使用kill -l。
2023-10-20 23:52:59
255
原创 Linux系统编程_进程间通信第1天:IPC、无名管道pipe和命名管道mkfifo(半双工)、消息队列msgget(全双工)
【代码】Linux系统编程_进程间通信第1天:IPC、无名管道pipe和命名管道mkfifo(半双工)、消息队列msgget(全双工)
2023-10-19 14:59:12
181
原创 Linux系统编程_进程:C程序空间分配、(v)fork、wait、exec、system、popen
每个进程都有一个非负整数表示的唯一ID,叫做pid,类似身份证Pid=0:称为交换进程(swapper),作用—进程调度Pid=1:init进程,作用—系统初始化编程调用 getpid 函数获取自身的进程标识符,getppid 获取父进程的进程标识符pid_t pid;//获取自身的进程标识符while(1);return 0;pid_t pid;//使程序休眠3秒else{return 0;
2023-10-17 19:54:35
203
原创 Linux系统编程_文件编程第1天:打开、写入、读取、关闭文件等编程
【代码】Linux系统编程_文件编程第1天:打开、写入、读取、关闭文件等编程。
2023-10-13 19:57:52
561
原创 STC89C51基础及项目第15天:小车测速、添加语言识别控制
9. 半小时左右后下载sdk固件。2)“控制详情”配置:添加控制。3)“识别灵敏度”配置:中。
2023-10-12 14:22:56
447
原创 STC89C51基础及项目第13天:小车go、软件调速
再接一根线5v-VCC,开发板的5v-面包板的正极,即可让小车脱离电脑供电开发板的束缚,自由的跑起来自定义按键点击“设置方向按钮”点击“top”如下设置,确认设置成功,其他按钮同理取消勾选“设置方向按钮”,即可方向控制。
2023-10-09 17:04:46
253
原创 STC89C51基础及项目第12天:IIC协议、OLED显示字符和图片
保存为bmp格式(未经压缩,可轻松导入取模软件而无需解压(相比于会压缩的jpg))打开“字模提取”app,“基本操作”、“打开图像图标”如果写入0x08(b00001000)会显示什么呢。“取模方式”、“C51 格式”打开画图app,画简单的图像。
2023-10-07 17:09:43
269
原创 STC89C51基础及项目第11天:温湿度传感器(非标协议外设)
8bit 湿度整数数据 + 8bit 湿度小数数据 + 8bit 温度整数数据 + 8bit 温度小数数据+ 8bit 校验和。DHT11传输0的时序分析。DHT11传输1的时序分析。
2023-10-04 17:26:13
172
原创 STC89C51基础及项目第9天:esp路由模式、4g模块、内网穿透
装好4g,打开串口,设置后从默认工作模式进入AT指令模式。便可看到服务器在接收心跳包。3)再次查询心跳包数据。6)再次查询心跳包时间。连接socket服务器。1) 查询心跳包数据。
2023-09-29 15:13:14
290
原创 STC89C51基础及项目第5天:中断、pwm、舵机、超声波
脉冲宽度调制通过占空比编码模拟信号占空比 一个周期内,高电平占据时长的百分比电平的变化 引起pwm的波形来控制sg90舵机型号:HC-SR04接线参考:模块除了两个电源引脚外,还有TRIG,ECHO引脚,这两个引脚分别接我们开发板的P1.5和P1.6端口超声波测距模块是用来测量距离的一种产品,通过发送和收超声波,利用时间差和声音传播速度,计算出模块到前方障碍物的距离。怎么让它发送波Trig ,给Trig端口至少10us的高电平怎么知道它开始发送了。
2023-09-21 15:35:58
598
原创 STC89C51基础及项目第4天:感应开关盖垃圾桶、定时器、晶振周期、寄存器
特殊功能寄存器(SFR)是用来对片内各功能模块进行管理、控制、监视的控制寄存器(类似神经)和状态寄存器(类似存储功能),是一个特殊功能的RAM区。
2023-09-19 21:07:20
180
原创 STC89C51基础及项目第3天:简易电动车防盗器小项目
下载程序时,若无反应,可先断开传感器的供电,即先拔除正极或负极代码(04. 震动控制灯)//根据原理图(电路图),设备变量led1指向P3组IO口的第7口//DO(数字亮信号输出)接到了P3.3口_nop_();i = 15;j = 2;k = 235;dodo//查询方式判断是否震动while(1){if(vibrate==0)//模块说明告诉我们,震动的话,DO输出低电平led1=0;//亮灯led1=1;//灭灯。
2023-09-18 21:47:34
135
原创 STC89C51基础及项目第1天:初识单片机、IO口
生成了工程目录>在工程目录Source Group1上右键鼠标->addExiting file to Source Group1…->选择代码文件main.c->close关闭。.c是主要的代码文件,.hex是写入单片机中的 单片机可运行的执行程序,.uvproj是工程文件 正常双击Keil会自动打开 并加载整个工程。由于c1单片机不认识c语言,只认识01序列化的二进制,做配置:Target Options->Output。勾选创建HEX文件:输出单片机可认识的二进制文件。编译结果、错误提示、编译信息。
2023-09-15 15:39:56
273
原创 C语言小项目-贪吃蛇第3天走位吃食物撞死重开
ncurse、ncurse按键响应、贪吃蛇项目整体逻辑规划、地图规划及算法优化、蛇的节点和完整身子、Linux线程、蛇的移动和走位同时进行、蛇吃食物。
2023-09-13 18:09:29
99
原创 Linux学习第2天:vi编写和常用指令
ls(而Windows下为:dir)列出当前文件夹下的文件和子文件夹ls -a显示所有文件,包含隐藏的文件和文件夹pwd显示当前工作目录(文件夹)的路径mkdir(同Windows)创建新文件夹,名为Jessiecd ~cd Jessie进入此文件夹退至上层文件夹cd 什么都不加回到工作目录tab键自动补全文件名太长时,敲名字的前几个字符,再按tab即可补全名字mv移动将所有的.c文件剪切至Jessie下重命名。
2023-08-25 22:45:01
184
原创 Linux学习第1天:Linux环境搭建(Ubuntu发行版)
(建议在非c盘下创建,我选择在d盘下,是我电脑的固态硬盘里)(如果看不到下面的按钮,可win+鼠标左键拖动桌面)选择刚刚Ubuntu官网下载的ISO映像文件。输入密匙(自行百度)、点“输入”创建“Ubuntu-22”文件夹。“CD/DVD”>“使用ISO”回到刚刚的linux文件夹下。安装完成,点击“许可证”“Ubuntu 64位”选择到刚刚创建的文件夹。点“否”,可稍后再重启。
2023-08-24 22:10:41
118
原创 C语言学习第17天联合体共用体
w2 = fri;w3 = sat;return 0;int data2;int data1;int data;}Demo;a[0] = 10;T t2;Demo d;return 0;
2023-08-23 19:00:04
82
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人