自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (10)
  • 收藏
  • 关注

原创 高通SOC启动流程

高通启动流程分析

2022-07-12 10:57:59 2593 1

原创 硬件课程设计--电梯管理系统

一:设计要求二:成品展示https://www.bilibili.com/video/BV1jV411W7FX/演示只是4层的;可代做(8层,加8254),详情可加QQ:3500702198

2021-09-12 20:53:24 184

原创 C语言 深入理解原码,反码,补码

目录一:前提引入二:编码方式介绍(1)原码(2)反码(3)补码三:使用源码、反码和补码的原因(1)原码运算(2)反码运算(3)补码运算(4)-128四:背后的数学原理(也就是如何发明的反码和补码)一:前提引入在计算机中,一个字节8位,可以表示2^8=256没有符号数那就是-128~+128,但实际上范围却是-128到127,这是为什么?其实产生这个问题的根本原因就是我们习惯用人的思维来思考计算机做的事。在探究原因之前,我们先来看一下学过的几种编码方式。二:编码方式介绍(1)原码原码就是符号位加上真

2021-09-05 16:01:05 2410 3

原创 Ubuntu入门

前段时间买了正点原子的ARM LINUX开发板,学习了一段时间,发现自己对Ubuntu的基础知识掌握的不好,想着写篇博客,重新把知识梳理下,顺便做下笔记,以后也许会用的着,方便查找;一:Ubuntu Shell命令目录信息查看命令 lsls -a 显示目录所有文件及文件夹,包括隐藏文件,比如以.开头的目录切换命令 cd当前路径显示命令 pwd系统信息查看命令 uname清理屏幕 clear显示文件内容 cat切换用户身份 sudo文件拷贝 cp切换用户 su移动文件命令 mv.

2021-08-07 10:45:29 139

原创 深入理解通信协议----SPI

一:简介

2021-08-06 18:05:31 369

原创 深入理解通信协议----IIC

一:IIC总线简介IIC总线是八十年代推出的一种串行,半双工的总线,主要应用于近距离,低俗的芯片之间的通信;IIC总线有两根双向的信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;IIC总线硬件结构简单,成本较低,并且I2C总线是各种总线中使用信号线最少,并具有自动寻址、多主机时钟同步和仲裁等功能的总线。因此,使用I2C总线设计计算机系统十分方便灵活,体积也小,因而在各类实际应用中得到广泛应用。二:通信过程如图所示,每个设备通过自己的IIC接口挂载到IIC总线上;

2021-08-06 11:17:16 1378

原创 深入理解通信协议----串口(uart)

一:简介串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。常见的单片机上(stm32,51)串口有两根引脚,分别是RXD(接收),TXD(发送),通信示意图如下:一个单片机的TXD接另一个单片机的RXD;二:通信小知识并行:是指每次

2021-08-05 11:47:09 4023 1

原创 树莓派学习(5)安装Git和资源控制台(监控平台)

1:安装GITsudo apt-get install git2:安装PI BOARDcd /var/www/htmlsudo git clone https://github.com/spoonysonny/pi-dashboard.git3:为Pboard分配权限cd /var/www/htmlsudo chown -R www-data pi-dashboard打开浏览器输入:localhost/pi-dashboard/这样就成功了;整体可以来监控你的树莓派的各项指标以及使

2021-06-07 17:37:56 163

原创 树莓派学习(4)PHPMY ADMIN安装

一:介绍phpmyadmin是一个以PHP为基础,以web-base方式架构运行在网站主机上的mysql的数据库管理工具,让管理者可以直接使用web接口管理mysql数据库。二:安装sudo apt-get install phpmyadmin//在选项中选择apache模式(按空格键确认)再下来选择是(设置密码)–一定要记住;随后确认,再次输入密码;三:设置PHPmyadmin软连接在命令行输入sudo ln -s /usr/share/phpmyadmin /var/www/html

2021-06-07 17:06:15 348

原创 树莓派学习(3)LNMP服务器配置

1:安装Nginx;sudo apt-get install nginx如果需要卸载:sudo apt-get --purge remove nginxsudo apt-get --purge remove nginx-commonsudo apt-get --purge remove nginx-core2:安装PHP7和插件sudo apt-get install php7.3//安装插件,如果安装失败可能是版本不对,网上搜索下,安装最新的版本,更改命令的版本号就行了sudo ap

2021-06-07 14:04:26 109

原创 树莓派学习(2)游戏机

一:硬件准备TF卡(建议重新拿一个,16G以上)游戏手柄或者键盘,显示器,二:镜像下载www.lakka.tv下载好之后采用磁盘影像工具将lakka写入TF卡。

2021-06-06 17:48:38 755 2

原创 树莓派学习(1)远程连接和USB摄像头配置

参考网上的教程将树莓派系统安装好后,然后进行换源,一切准备好就可以开始学习我们的树莓派了;一:远程连接为了方便对于树莓派操作,我们可以对树莓派采用远程连接,而不必在树莓派上再接个显示器,鼠标,键盘,那样就太麻烦了,但是远程连接的配置需要接上,配置好了就不用了。首先,树莓派开机,连上WiFi,通过命令行窗口查询树莓派IP地址 ifconfig如图所示:然后打开win10自带的远程连接软件,输入IP地址,用户名pi,密码rappberry(树莓派最开始默认的),然后就可以远程操控了,当然反应速度

2021-06-04 17:13:16 933

原创 嵌入式毕业设计-消防设备监管系统

一:项目需求1:项目功能;二:模块选型三:整体思路四:主要算法五:总结

2021-05-17 21:36:45 1303 7

原创 模电学习之-------二极管

一些知识网上都可以查到,写博客主要是记录一些比较常见的应用,供大家参考;图画的有点丑!!!1:二极管的限幅作用;电路图(左)就是二极管的限幅电路,Un是二极管的导通电压,uo为开漏输出,us是交流电源,R是电阻,右图是电压图;当二极管导通的条件是us-u1>un,此时us>u1+un,uo的输出就是un+u1,达到限幅作用;当us-u1<=un;二极管未导通,故二极管上无电流通过,此时uo=us;限幅后电压:2:二极管的整流;左图为整流电路,二极管采用理想模型(导通电压

2021-03-24 21:41:04 1483

原创 关于对嵌入式学习的一些看法

不知不觉,也到了大二下学习了,学习嵌入式也有一年多了,之前感觉自己学的可以

2021-03-23 11:04:42 507 3

原创 MYSQL流程化学习(简单入门数据库)

1:mysql软件安装https://blog.csdn.net/weixin_45745378/article/details/113849833https://www.bilibili.com/video/BV1fx411X7BD?p=22:安装后命令行打开出现win10 mysql ERROR 1045 (28000): 错误解决办法https://blog.csdn.net/qq_18360105/article/details/1052297173:mysql可视化管理工具NAvicat

2021-03-05 09:15:46 125 1

原创 语音交互(初学)

一:寒假开始整一个机器人有关的项目,学习了语音方面的知识,下来做个总结。整个语音部分都用的是科大讯飞的平台,用的系统是ubuntu18.04二:功能分类1:语音听写:将语音转化为文字2:语音合成:将文字转语音3:语音唤醒:通过设置特定唤醒词来唤醒4:人声检测:检测到人声后开始语音识别5:语音录入:将语音存储三:功能详解1:语音录入;通过相应python程序调用麦克风实现一定时间语音录入;当然这个由于后面功能不够所以被舍弃,但前期可以学习;2:语音听写:下载科大讯飞的SDK实现,下载了要改动

2021-02-14 21:59:21 376

原创 STM32 使用DMA产生正弦波,三角波,方波

一:思想使用stm32产生波形当然肯定要用到DAC了,这是必不可少的,虽然stm32自带三角波生成器,但这里我们主要用dma,这样不论想生成什么波形都可以,只要构造出相应函数列表;二:函数列表实现主要就是采样法,在一个波形图上选取多个点,然后把相应数值存起来,等待调用(DMA循环调用),然后通过DAC把数值转换,最后近似得到波形,这种方法其实也就是数学中的描点法;正弦波:u16 D_sin[256];void SineWave_Data(){ u16 i; for( i=0;i<=2

2020-12-24 16:18:44 7433 8

原创 基于STM32f103c8t6的两轮自平衡小车--2(实现自平衡)

实现自平衡才是整个工程的重点;1:首先,要实现小车自平衡控制,必须先有一个检测小车姿态的传感器,在这里我使用的是Mpu6050六轴加速度陀螺仪传感器,使用的是IIC来传数据;关于Mpu6050六轴加速度陀螺仪传感器的使用方法,可以去参考原子的教程,在这里说下我遇到的问题;首先在程序开始的时候要保持Mpu在水平位置初始化,其次关于代码IIC的初始化必须放在DMP初始化的后面,不然会出问题;...

2020-12-09 20:41:27 2671

原创 基于STM32f103c8t6的两轮自平衡小车--1(硬件准备以及OLED 屏幕显示)

一:硬件准备stm32f103c8t6,tb6612,电压转换模块,mpu6050,蓝牙模块,电池,开关,OLED 屏幕,杜邦线;二:设计先列出所有功能:1.OLED 屏幕显示;2.实现小车自平衡;3.蓝牙遥控;三.代码实现1.OLED 屏幕显示:在这里我用的是7脚的OLED 屏幕,包含VCC(), GND, RSET, D0,D1,CS,DS,关于OLED 屏幕的使用,大家可以去看原子哥的教程(基本上了解并会使用那几个函数就可以);然后就是接线的问题,原子的教程使用的端口不一定和我们所

2020-12-06 16:33:18 2525

原创 数据结构--马踏棋盘

1–问题简介:在国际棋盘(8*8)中任意一个位置放一个马(走日字),让马无重复的走遍每一个格子,输出其轨迹;2–解答思路;从起始位置(父本)开始,每次可以走的方向有八个(儿子),但并不是每个方向都可以走,如果一个方向他的位置合法(没走过,且没出界,存在子节点(他的下一步有路可走)),其实判断是否合法就是通过子节点(孙子)个数决定,不合法为0,合法为孙子个数(权值,即儿子可以走的方向),每次选取最小的但要大于零,如果无路可走,分为两种情况:剩余最后一步了,这时孙子个数肯定为0,但这种情况是对的,因此加一

2020-10-14 17:48:08 697

原创 3--STM32多功能小车(6)--硬件电路连接

1–电源及接线;对于stm32和所用到的外设来说,基本都要用5V作为输入电压,但是市面上的电池基本没有是5V输出的,但是却有12V的,因此我们就需要采用12V转5V(一般都不用3.3V转5V),这里有几种选择,最常见的就是DC-DC模块,可以通过上面的旋钮调节输出电压,当然他只有降压功能,再者也可以用L298N电机驱动芯片,上面带有12V转5V的接口;再者对于32来说5V口比较少,但是我所用的外设基本都是5V电源输入,因此我们需要引出5V接口,这里可以使用面包板,也可以用那个电路板自己焊接接口出来,引出

2020-10-14 17:28:18 1556

原创 2-STM32多功能小车--(5)主函数

1–原理:通过开发板上的三个按键控制三个模式–按键1,2,3分别代表蓝牙控制,红外循迹,舵机加超声波避障,切换功能时按复位键就行;2:代码;主函数:#include "move.h"#include "sys.h"#include "delay.h"#include "usart.h"#include "trailing.h"#include "key.h"#include "control.h"#include "wave.h"int main(){ u8 mode; Stm

2020-10-14 17:08:30 728

原创 2-STM32智能小车(4)舵机加超声波避障

1–安装及原理:将超声波安装舵机上,调节舵机旋钮,使得当舵机复位时超声波指向正前方;舵机使用方法:参考下面博客https://blog.csdn.net/Nimbrethil/article/details/98475301超声波使用方法:如下博客https://blog.csdn.net/qq_41262681/article/details/959407072–代码:...

2020-10-14 16:54:06 2486 1

原创 2-STM32多功能小车--(3)红外循迹

1:红外循迹用到了两个红外循迹模块,其使用方法如下:在此我们使用循迹模块TCRT5000,该模块体积小,灵敏度较高,还可以通过转动上面的电位器来调节检测范围。模块特色1、采用TCRT5000红外反射传感器2、检测距离:1mm~8mm适用,焦点距离为2.5mm3、比较器输出,信号干净,波形好,驱动能力强,超过15mA。4、配多圈可调精密电位器调节灵敏度5、工作电压3.3V-5V6、输出形式 :数字开关量输出(0和1)7、设有固定螺栓孔,方便安装8、小板PCB尺寸:3.2cm x 1.4cm

2020-10-13 09:33:17 8695 6

原创 2-STM32多功能小车--(2)蓝牙遥控

1,蓝牙模块用的是HC-05,蓝牙通过连接单片机的串口来接收从控制端发来的信息,然后进行相应的操作;2–先看代码;control.h#ifndef _CONTROL_H_#define _CONTROL_H_#include "sys.h"u8 control_init(void);void control(void);#endifcontrol.c由于直接用的是单片机上的PA9,PA10,直接调用usart.h文件,就不需要自己写一个接收函数了;如果要用其他串口,就要自己写一个串

2020-10-12 21:45:32 557

原创 2-STM32多功能代码(1)--基础移动部分

对于小车的移动的话,因为我用的是三轮底板,因此只需要操控2个直流电机,所以就只用到两路PWM;话不多说,先上代码;move.c#include "delay.h"#include "move.h"void MOVE_Init(u16 arr,u16 psc)//IO口,定时器,调制PWM输出{ RCC->APB1ENR |=1<<0;//TIM2时钟使能 RCC->APB2ENR |=1<<2; RCC->APB2ENR |=1<<4

2020-10-08 15:17:28 458 1

原创 1(准备阶段)----基于STM32的多功能小车(寄存器)

最近学习了STM32F103的一些操作(从点灯到输入捕获),就想着做一个小车来练练手,巩固一下学过的东西,大概了解下做项目(有点高大上,哈哈)的流程;1:需求分析;基于STM32F103板子,小车所需求的功能有:(1)循迹功能;(2)超声波配合舵机避障;(3)蓝牙操控;各个模式用按键切换;2:材料准备;杜邦线,小车底盘,STM32F103,舵机,软包电池,超声波模块;TCRT5000红外反射传感器(循迹避障);TB6612FNG 电机驱动模块(比L298效率高);蓝牙模块;3:项目

2020-09-25 08:03:48 861 1

原创 mini stm32(寄存器)--输入捕获实验

1;原理;假定定时器工作在向上计数模式,t1~t2为高电平,则该时间段就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器的计数频率,我们就可以算出 t1-t2 的时间,从而得到高电平脉宽。在 t1-t2 之间,可能产生 N 次定时器溢出,这就要求我们对定时器溢出,做处理,防止高

2020-09-19 19:48:57 448

原创 Stm32(寄存器)通道一--输出占空比50%的PWM

1;目的:用STM32f10x的TIM3产生占空比50%,频率10Khz的方波;2;操作步骤;(1)开启TIM3时钟;(2)设置自动重装载值和预分频系数;(3)设置通道和PWM模式;

2020-09-17 22:00:00 4067

原创 Stm32(寄存器)--定时器中断

1;原理;和外部中断差不多,不同的是外部中断的产生是由外部硬件产生变化的,而定时器中断就是通过定时器的溢出实现中断(可以想象成闹钟);2;操作步骤;这里我用的是通用定时器TIM3;1)TIM3 时钟使能。这里我们通过 APB1ENR 的第 1 位来设置 TIM3 的时钟,因为 Stm32_Clock_Init 函数里面把APB1的分频设置为2了,所以我们的TIM3时钟就是APB1时钟的2倍,等于系统时钟(72M)。2)设置 TIM3_ARR 和 TIM3_PSC 的值。通过这两个寄存器,我们

2020-09-15 09:38:08 1400

原创 STM32(寄存器)--独立看门狗

1;基本原理;看门狗就相当于一个定时器,当一定时间过后,会产生一个复位信号(溢出),让程序从头开始运行;如果你不在这段时间内喂狗,即让他那个计时器从头开始的话;看门狗溢出时间计算公式是Tout=((4*2^prer)*rlr)/40;Tout为溢出时间,prer是预分频系数,rlr是重装载值;2:代码wdg.c;(程序里写成wgd了,失误失误)在这里插入代码片#include "wgd.h"#include "usart.h"void IWDG_Init(u8 prer,u16 rlr){

2020-09-14 19:51:50 183

原创 STM32(寄存器)--外部中断

1:对于外部中断,编写代码步骤;第一:配置IO口为输入(PA15,按键KEY_1,PA0,按键KEY_UP);第二:设置IO口复用时钟(一般的开启时钟只适用于高低电平的使用),配置中断线和触发条件;第三:中断分组和...

2020-09-13 23:44:10 322

原创 stm32(寄存器)--串口通信

1;串口通信;由于电脑没有串口,所以我们得使用虚拟串口软件XCOM V2.0,可以在stm32官方网站下载,但如果你单片机也用USB转串口,那么你的下载和串口通信不能同时进行;注意,使用串口前得提前安装CH340驱动;2;函数代码;在这里插入代码片int main(){ u8 t;//循环变量 u16 len;//存储获取的字节数 Stm32_Clock_Init(9);//PLL delay_init(72); uart_init(72,9600);//串口时钟设置,和波特率(系统默认

2020-09-13 20:33:04 1487 1

原创 STM32(寄存器)--矩阵键盘

1;硬件;准备一个2*2矩阵键盘,分别接PB8,9,10,11;2;矩阵键盘原理;让pa8,9输出高电平,pa10,11输入;当pa10,11中检测到高电平时,得到i值。然后翻转,让pa8,9输入,pa10,11输出高电平;当pa8,9中检测到高电平时,得到j值;然后通过i,j确定是那个按键;3;keyboard.c函数实现;在这里插入代码片#include "keyboard.h"#include "stm32f10x.h"#include "delay.h"#include "usar

2020-09-13 19:07:33 904

原创 stm32(寄存器)--按键输入

1;硬件接口;mini版stm32上有4个按键,分别为KEY_0,KEY_1,(内接高电平,下降沿触发,连接PC(5),PA(15)),KEY_UP(内接地,上升沿触发,连接PA(0)),RESET(复位键);2;key.c函数实现;在这里插入代码片#include "key.h"#include "stm32f10x.h"#include "delay.h"void KEY_Init(){ //开启AC时钟; RCC->APB2ENR |=1<<2; RCC-&gt

2020-09-13 18:39:07 1518 1

原创 STM32(寄存器)--LED灯闪烁

1,;mini版stm32上有两个led灯,内接PA8,PD2;2, led.h函数实现在这里插入代码片#include "led.h"void LED_Init(){ RCC->APB2ENR |=1<<2; RCC->APB2ENR |=1<<5; \\ GPIOA->CRH &=0XFFFFFFF0; GPIOA->CRH |=0X00000003; GPIOA->ODR |=1<<8; \\ GPIO

2020-09-13 18:20:24 1918

原创 STM32固件库分析(stm32f10x)

1-汇编编写的启动文件(大容量,其他一样)startup_stm32f10x_hd.s:设置堆栈指针,设置PC指针,初始化中断向量表,配置系统时钟,调用C库函数_main(初始化堆栈)最终去到c的世界。2-时钟配置文件system_stm32f10x.c:吧外部时钟HSE=8M,经过PLL倍频成72M;3-外设相关的stm32f10x.h:实现内核之外的外设寄存器映射;stm32f10x_xx.h:外设的驱动函数库文件;stm32f10x_xx.c:存放外设的初始化结构体,外设初始化结构体成员

2020-09-06 09:26:47 2028

原创 stm32--寄存器映射

上篇文章是直接操作内存来点亮一个灯,但属实麻烦,所以我们可以可以给内存起一个名字,便于操作;这就是寄存器映射; 然后对于我们外设来说,有三条总线,AHB,APB1,APB2; 所以当进行映射的时候,我们要先定义基地址,然后加上与总线的偏移量,再加与外设偏移量;我们所有外设起始地址是0x40000000,以他作为基地址;#define PERIPH_BASE ((unsigned int)0x40000000)然后加上到总线的偏移量得到总线基地址(由于地址由下到上分别是APB1,APB2,..

2020-08-22 10:03:01 198

原创 Stm32学习笔记一(寄存器)操作地址(内存)点亮一个LED灯

首先,打开Keil,创建主函数,当然,点亮一个LED灯的话,灯的负极肯定要接单片机IO口,然后让端口输出低电平,外部有电源给LED供电,就完成点亮一个LED;接着我们就要写代码让端口输出低电平,对于stm32来说,首先就是打开GPIO口的时钟,这里我们一PB0为例;1:打开端口时钟(Rcc)(st设计时为了降低功耗,因此初始时时钟是关闭的);*(unsigned int *)0x40021018 |=(1<<3); 我们这里是直接操作内存进行的,可以在32手册上查到0x40021000

2020-08-21 20:05:21 598

web应用开发课设---

web应用开发课设---

2022-07-08

硬件课程设计-电梯,具体可以看我博客后下载

电梯

2022-07-08

毕设最最最最最终版.rar

嵌入式毕业设计-消防设备监管系统; 具有的功能:短信发送,摄像头拍照,图片显示和存储,声光报警,温湿度显示,防盗监控;

2021-05-14

数据结构课设--哈夫曼编码

数据结构的课设---哈夫曼编码;具有解码,译码,存储在文件里功能,另外包含课设报告;

2021-04-10

平衡车小板子版--000.rar

嵌入式二轮平衡车

2021-04-10

小车.rar--基于stm32的

有循迹,避障,蓝牙遥控功能

2021-03-23

波形生成(三角,正弦,方波).rar

包含两个文件夹,可生成正弦波,方波,三角波 要生成其他波形只需改动一个函数

2021-03-01

网页大作业--课设.rar

本课设包含代码以及报告,里面应用到了css和js,添加有视频和图片,还有背景颜色渐变,页面整体布局良好,有需要请自行下载;

2020-10-15

网页大制作--课设.rar

网页制作课程的课设 本课设用到了css和js,基本满足课设的所有需求,而且配备视频和图片,以及课设报告,有需要自行下载;

2020-10-14

c语言课设--球队管理系统.cpp

c语言课设,球队管理系统; 主要功能有登录注册功能,查询(多种方式,单个查找(ID号,姓名等)),排序(升序,降序),增加,删除,数据报表等等功能; 采用链表的数据结构实现;

2020-10-14

空空如也

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

TA关注的人

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