- 博客(44)
- 收藏
- 关注
原创 嵌入式应会的模电数电基础
MOS管(N/P沟道)用作开关时,连接的二极管阴极接输入端,阳极接输出端;MOS管(N/P沟道)用作隔离(使用MOS管防止电流反向流)时,连接的二极管阳极接输入端。
2024-04-10 18:34:35
1049
1
原创 STM32 ---- 03 再次学习C8T6加深理解
SPI、BKP(BAT和VBAT)备份寄存器、unix时间撮、RTC实时时钟、PWR电源控制(低功耗)、IWDG和WWDG看门狗、FLASH闪存
2023-11-15 20:28:38
256
原创 STM32 ---- 02 再次学习STM32F103C8T6/STM32F409IGT6
再次学习STM32标准库,ADC、DMA、UART、I2C等
2023-11-04 20:30:41
433
原创 STM32 ---- 再次学习STM32F103C8T6/STM32F409IGT6
kile4 开发51单片机(内置芯片包)、kile_v5开发STM32手动添加芯片包、如果要开发51许把51的芯片包放在kile5中 、通过注册机key来破解对应STM芯片包也可以通过 通过在线安装其它芯片包 ---- 可以找到GD 以及其他厂家的芯片包STLink驱动 和CH340驱动安装管理员运行kile5 复制CLD到注册机 破解片上资源系统结构启动过程新建工程GPIO介绍GPIO八种模式输入配置当I/O端口配置为输入时:● 输出缓冲器被禁止● 施密特触发输入被激活。
2023-10-15 21:25:18
1522
原创 02 java ---- Android 基础app开发
/ 自定义的点击事件处理类,实现了View.OnClickListener接口 继承@Override//方法重写触控事件 有触控这日志输出 没用toast因为toast得调用主函数中//Toast.makeText(this, "按键一被按下", 0).show();//没用toast因为toast得调用主函数中System.out.println("按键一被按下");break;//Toast.makeText(this, "按键二被按下", 0).show();
2023-09-16 18:06:39
5960
3
原创 01 java 学习 数据类型、基础语法、封装、继承、多态、接口、泛型、异常等
Java的JRE(Java Runtime Environment)是Java平台上的运行时环境。它是Java应用程序运行所需的核心组件,包括Java虚拟机(JVM)、Java类库和其他必要的文件。JRE提供了执行Java程序的基本功能,它负责解释和执行Java字节码。当你运行一个Java程序时,JRE会将字节码转换为机器码,并在计算机上执行。除了Java虚拟机,JRE还包含了Java类库,这是一组预定义的类和方法,用于处理常见的任务,例如输入输出、图形用户界面、网络通信等。
2023-08-27 17:53:14
633
原创 03 基于orangePi 工厂模式 智能家居项目 ARM Linux (持续更新)
语音相关的读取代码,这个文件里面的函数就要添加读取指令函数和初始化函数,所谓的初始化函数就是将串口打开然后设置相应的波特率,读取指令函数需要注意的是在读取指令前需要将缓存区初始化防止有乱码,读指令函数主要调用read函数进行指令的读取,在没有指令到来的时候,输出读取时间超时,其实代码框架和设备工厂的框架基本类似,只是文件里面包含的函数有所差异,但都有一个设备结点插入函数。然后再编写 inputCommand.h这个头文件里面的内容,这个是指令工厂里面的头文件,也是指令链表里面的每一个结点的类型。
2023-08-08 09:31:00
350
原创 02 http https和libcurl库
libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证。libcurl的官网库下载。
2023-08-07 08:46:38
573
原创 01 OSI网络模型 + TCP三次握手、四次挥手 + Socket、TCP、HTTP三者之间的区别和原理
但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。机器都有一个网卡,(电脑-以太网-适配器-详细信息,可以看到无线网卡的物理地址,其实就是每一块网卡的独有的地址,理解成这个网卡的身份证)。: 用来释放一个连接。通过数据链路层,计算机之间可以正常传数据包,但是现在有2个主机,一个主机a,主机f,两台主机间通信,但是中间隔着bcde主机,它们两个不是直接连接的机器,它们两个怎么实现直接通信呢?
2023-08-05 14:21:05
157
原创 树莓派02 ------ 内核编译、移植
常规认知: 根目录文件系统 :是操作系统用于明确存储设备组织文件的方法。以上说的方法:就是文件管理系统(程序),简称文件系统windows: 随意(面向普通用户PC),目录即分区C(装系统的位置)也可以随意在C盘存放文件. D盘(用户随意发挥)Linux: 按照功能来分区,每个分区严格存放文件(开发者)嵌入式系统可以分为4个区,分别是bootloader、 启动代码para、 启动代码向内核传递参数的位置。
2023-08-01 10:22:00
594
原创 树莓派01 ------- 基于orangepi学习 静态动态库、交叉编译、软链接
进入开发板/usr/local/lib目录下拷贝libwiringPiDev.so.2.46到上位机的/home/ygl/orangePiZero2目录下。进入开发板/usr/local/lib目录下拷贝libwiringPi.so.2.46到上位机的/home/ygl/orangePiZero2目录下。(1)正常我们要先交叉编译wiringpi库,编译出的库适合开发板,这时交叉编译可执行程序的时候,链接库的格式也是正确的。默认是从/usr/lib /usr/local/lib去找。
2023-07-25 15:44:46
295
原创 全志03 sqlite数据库 python环境安装和学习
下载地址1. 把下载的文件sqlite-autoconf-3390000.tar.gz上传到开发板2. tar xvf sqlite-autoconf-3390000.tar.gz 解压3. cd sqlite-autoconf-3390000 进入文件夹4. ./configure --prefix=/usr/local 配置安装路径在/usr/local5. make 编译//比较久10分钟 6. sudo make install 安装安装成功。
2023-07-22 09:29:05
622
原创 全志02 UDEV串口语音刷抖音、守护进程、挂载U盘
当插入硬件时内核判断是否有插入,udev 能够根据系统中的硬 件设备的状态动态更新设备文件,包括设备文件的创建,删除等。设备文件通常放在/dev目录 下。使用udev后,在/dev目录下就只包含系统中真正存在的设备。
2023-07-19 17:52:25
370
原创 全志 01 orangePi 环境搭建基础外设库的使用wiringPi
刷机和系统启动1 SDFormatter傻瓜式安装-----格式化内存卡,2 Win32Diskimager傻瓜式安装------ 刷机课程使用的镜像是 Orangepizero2_2.2.0_ubuntu_bionic_desktop_linux4.9.170.img3 登录 使用USB转TTL模块,使用MobaXterm免费好用,类似的工具还有Putty-相对太简陋,SecurityCRT老牌 工具-需要付费或者破解。
2023-07-17 21:20:01
338
原创 linux ----- 项目ftp
服务器客户端连接上之后 客户端输入ls pwd cd会显示服务器下的内容 按下lls lpwd lcd显示客户端的内容、按下get 客户端获取到服务器上的内容、按下put 把客户端的内容上传到服务器。
2023-07-13 10:03:06
62
原创 Linux网络编程 服务器socket、bind、listen、aceept、read、write、客户端socket、client、write、read、注意端口htons和ip inet_aton
1. TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前 不需 要建立连接2. TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付3. TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的 UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)4. 每一条TCP连接只能是点到点的;
2023-07-13 08:54:27
368
原创 linux线程 3个API create、join、exit、 互斥锁4个:mutex、init、destroy、lock、unlock、条件5个:init、destroy、signal、wait、
使用进程的优势:和多进程相比,多线程是一种比较节省资源的多任务操作方式。启动一个新的进程必须分配给它独立的地址空间,每个进程都有自己的堆栈段和数据段,系统开销比较高,进行数据的传递只能通过进行间通信的方式进行。在同一个进程中,可以运行多个线程,运行于同一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享全局变量和对象,启动一个线程所消耗的资源比启动一个进程所消耗的资源要少。1、创建线程pthread_create函数来创建一个新的线程,函数声明:*arg);
2023-05-20 18:13:34
149
原创 linux进程间通信IPC、管道无名pipe、有名FIFO、消息队列msgget、共享内存shmget/at/dt/ctl、信号signal/action/queue信号量semget/ctl/op
无名管道pipe(int fd[2]),成功返回0,失败返回-1,fd01 读写用exit和exec无法完全进程间通信进程间通信IPC有:无名管道pipe、有名管道、消息队列、信号量、共享存储、socket。strams流 两个支持不同主机上两个进程ipc无名管道pipe(int fd[2]),成功返回0,失败返回-1,fd01 读写:特点 半双工 、用于亲缘间通信、内在内存中 进程结束即消失。
2023-05-15 20:34:04
155
原创 linux进程!!父子进程fork、vfork、退出、wait(&status)、waitpid、execl/lp/v/vp族函数、system(* commad)、popen(*cmd,“r/w“)
通过getpid获取当前进程号syspid = 0;交换进程,起着进程调度、资源分配作用pid = 1;init进程, 系统初始化 譬如界面,exit():函数exit()“立即”终止调用进程、进程中任何开的文件都被关闭;、进程的任何子进程被进程继承,wait(&status)等待退出状态、整体长退出用WEXITSTAYUS(status);//子进程pid,状态值、不挂起WNOHANG存储空间分配vfork使用方法,用exit退出、break退出会打乱cnt。
2023-05-08 17:07:43
293
原创 Linux 系统编程 文件部分(open、write、read、close、lseek(光标)、creat(创建)、查找并修改p = strstr(fd,“LENG=“)FILE * fp=fopen
linux文件读取 增删改查、以及c标准库
2023-04-26 20:14:59
117
原创 STM32 ------ 智能小车(串口-----蓝牙、wifi、4g 循迹------pwm调速、避障-----超声波 舵机、跟随、测速并显示在OLED上、语音小车)
测速模块周长知道 有20格子 每个电平转变一次就是1cm 用中断计数 配置定时器中断1s产生中断 计算出中断count++的值除以时间1s ==== 速度。PWM调速小车 开启定时器配置时间、模式 注意有效电平是高低电平、则车子另一个轮电平要相反才能驱动。摇头避障小车------SG90、超声波 要用到两个定时器。超声波配置一个1us的定时器 计数一次则是1us。测速小车(两个中断 gpio中断 和定时器中断)接收完成回调函数,收到一个数据后,在这里处理。串口接收到的数据放在这个数组里,最大。
2023-04-14 21:28:28
1241
原创 STM32 ----- LCD1602、DHT11、串口发送、接收中断
描述:把温湿度检测的数据显示在LCD1602上、并通过串口发送到服务器、当温度大于23度时 继电器闭合报警、 打开接收中断,当收到关闭指令时继电器闭合产生报警。既作为输入,也作为输出,则不能直接在。使用蓝牙模块时,记得将波特率设置为。里配置,需要自己写代码。函数把串口中断打开;
2023-04-13 20:20:20
367
原创 STM32 ------ DMA搬运工、ADC模数转换(电压)、I2C配合OLED使用、SPI原理及应用
主函数 初始化OLED、清屏、选择地址、和确认也寻址模式、调用OLED函数显示字符或者一幅画、当没收到数据时 产生空闲中断,将标志位复位,停止DMA接收搬运(防止数据错乱--产生干扰)因为是单次扫描和转换 只用到第一通道,所以在while中循环测量并发送。主函数中打开 IDLE空闲中断 和串口DMA接收中断,在中断函数中 接收到数据则中断,dma开始复制搬运,连续转换:转换一次之后,立马进行下一次转换、计算收到了多少数据(数据长度),存储器(例如:复制某特别大的数据。外设 (例如:将某数据。
2023-04-13 19:14:22
448
原创 STM32------串口、串口中断、蓝牙、wifi、4g、独立看门狗IGDW、窗口看门狗
主函数中用串口2/白盒测试来显示调试信息,要先开启中断,中段优先级小于滴答定时器。发送wifi模块指令 给wifi模块 模块由于会返回信息给单片机产生接收中断,用标志位 while卡点,while中要放delay(10);接收外来信息存放在ch数组中-----使用printf函数要包含头文件"stdio.h"-----打开keil中LIB库---printf会直接调用fputc---重装载寄存器是一个12位的寄存器,用于存放重装载值,低12位有效,即最大值为4096,这个值。
2023-04-11 19:54:07
302
原创 STM32-------定时器、舵机、超声波、智能垃圾桶
2、void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)------写引脚。5、GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)---读引脚。1、void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)------输出取反。
2023-03-18 21:04:21
85
原创 51单片机 智能小车
-----实现左右转动。将循迹模块和PWM结合起来解决轮子一卡一卡问题(!八、WIFI小车,单片机---8266----串口----(将小车 8266模块连接----模块初始化,)定时器一秒 中断电平跳变多少次则是速度,速度通过串口发给wifi模块,用OLED模块显示速度,1//初始化wifi工作在ap模式(需要上电时间)-----单片机发指令给8266--》8266通过串口反馈,---》单片机检测到SBUF中的值---》标志位往后走。四、循迹模块-------使用两个循迹模块,(
2023-03-06 22:00:37
2179
原创 51单片机 IIC传输、OLED、
一、IIC 属于半双工,10kbp/s ,不用多余期间占用空间小,可一传多,也可多主控,SDA数据线,SCL时钟线,每个IC都有地址 通过地址(指令)---来发送数据。1OLED初始化、2 寻址1 寻址2、 3显示在哪里PAGE0(地址--指令)、4清屏幕 、5显示什么内容(数据)OLED通过IIC传输显示字符(看手册)开始信号、结束信号、应答信号、二 OLED通过IIC传输显示。
2023-02-26 12:02:00
185
原创 51单片机 串口通信 LCD1602、温湿度模块DH11
3通过串口的方式将温湿度的数据传送到电脑端(串口初始化--pcon--scon--TMOD--SMOD--TH1--TL1配置串口 定时器 波特率 计时器开始)(发。//DHT=1 动作后DHT=0需要取反保持1(一直为低电平) 进入工作模式并延时50us。if(DHT == 1){//延迟44us后是1 则说明是高电平 并while(DHT)让dht走完。void wen_shi_du_String(){ //把datas【i】中的数据放在字符串数组wen_du、shi_du中。
2023-02-21 19:34:56
1791
原创 51单片机 串口通信1(配置) 蓝牙、wifi (esp8266)、4G模块
手册SCON的配置 地址98H -----sm0--sm1--sm2--ren--tb8--rb8--t1--r1。将单片机txd rxd和蓝牙模块rxd 和txd连接 手机下载蓝牙串口助手,连接后可以通过发送open来开关灯 -------也可以蓝牙直接和usb转串口连接 向isp发送信息 但是不能控制单片机, 只有断开通透模式才能发送AT指令。输入高电平大于等于2v 低电平为小于等于0.8 ,RS232逻辑1是-3-----负15,逻辑0是3到15。CLCA,不要带回车,开启透传模式。
2023-02-16 17:12:09
1206
原创 51单片机 定时器
10ms需要数9216下,你让他从65536-9126=56320(16进制表示为 0xDC00)开始数数 这样TL0=0x00;TL0= TH0= TR0 = 1 TF0 = 0(定时器/软件 溢出置1)在TH0/1和TL0/1寄存器中加1,默认是从0开始数数,最多能数65536下,65536*1.085=71ms,累计计时71ms。= 12个时钟周期=12 /11.0592 =12000000/11059200 =使用中断时在定时器配置中EA = 1 ET0 =1打开这两个中断后会调用这个。
2023-02-04 11:40:17
255
原创 51单片机 环境搭建 点亮LED 电动车报警案例
1 安装keil4/5 用密钥破解MDK 还需下载对应芯片包 放在同一文件名下,创建工程project 选择对应芯片库Atime 89c52 写一个.c文件名,魔术表输出成HEX文件因为单片机只识别01,然后编译,烧录到stc-isp中需要下载ch340串口驱动 选择对应单片机型号, 对应usb端口号 打开文件 下载进单片机 重新冷启动。6 取反功能 if key1 == 0 则LED = 0亮,key==0再次按下 LED =!意思是把p3^7 io口赋值给LED1 LED1=0则亮。
2023-01-23 10:04:57
122
原创 c语言 贪吃蛇游戏
再调用函数 没调用一次则多一个节点 在链表尾节点加入新节点定义同一类型new,new=NULL,new用malloc开辟空间new->hang=tail->hang,new->lie=tail->lie+1;第2-18行if lie==0、20!= NULL, if head->hang ==taile->hang && lie也相等 则retuen 1 head = head->next循环遍历查找是否相等 直到最后一项head->next ==NULL时跳出循环。------函数调用。
2023-01-19 20:50:21
109
原创 c 语言 链表动态开辟空间 头插法和尾插法
head初始化null 通过函数嵌套调用 0则停止 不是0 则调用另一个函数,每次输入前都要让new-》next = NULL初始化;调用函数 定义一个要插入的指针变量new new指向malloc开辟的空间 ,不断输入取地址 头插法算法 new->next = head;head = new;注意每次输入初始化 new->nex =NULL, 嵌套调用时的head ==NULL,head = new;= NULL,直到等于NULL跳出循环 p->next = new最后一项指向新节点。
2023-01-15 10:42:20
315
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人