自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 串口、RS485、RS232

硬件电路:两根通信线一个发送一个接收,发送端TX和接收端RX TX与RX交叉连接 一个单片机的TX连接到另外一个单片机的RX,,当 两个相互通信设备的电平标准不一致的时候需要加电平转换芯片,就是保证他们高低电平的标准是一致的。RS232和RS485其实是硬件电路上的,软件代码层面其实就是串口通信,只是RS485规定了电平,是差分,抗干扰和传输距离更长。usart串口通信,是一个点对点的通信,需要的引脚主要就是两个TX和RX,全双工模式也就是发送和接收可以同时进行。停止位:用于数据帧的间隔,固定为低电平。

2024-05-23 23:32:37 412

原创 简单回顾一下c语言

构造类型:不是基本类型的数据结构也不是指针类型,它是若干个不同类型的数据的集合,描述一组具有相同类型数据的有序集合,用于处理大量相同类型的数据运算。前提是:必须是两个相同类型的指针指向同一个数组元素的额时候,做减法才有意义,做减法的结果是,两个指针指向的中间个数的元素有多少。有些情况下,如果不对函数进行声明,编译器在编译的时候,可能不认识这个函数,因为编译器在编译c程序的时候是从上往下进行编译的’无论什么类型的地址都是存储单元的编号,在32位电脑中都是四个字节 ,也就是任何类型的指针变量都是4个字节大小。

2024-05-18 17:42:42 475

原创 学习001

继电器开关的速度与MOS管相差特别大,MOS管十分快,MOS管是静音 ,继电器有声音,MOS管接入电路的时候要区分方向,MOS管由于体二极管的原因只能控制一个方向的电流,mos管只适合控制直流电。MOS管比继电器便宜很多。IGBT:绝缘栅双极晶体管,可耐受电压高,可达6500V以上,并且可以 通过的电流很大3600A,开关频率也高,可达每秒上万次,给G(栅极)极高电平就导通,给G极低电平就截止,C集电极 E是发射极,IGBT结合了MOS管和三极管的优势,结合了MOS管低驱动电流和三极管低导通电阻的优势。

2024-05-12 21:35:53 375

原创 CUBEIDE

外部中断:检测到GPIO口电平变化,检测到指定的电平变化时,可触发外部中断,执行服务函数。2.响应中断:cpu停止执行当前程序,转而去执行中断处理程序。让CPU打断正常运行的程序,转而去处理紧急的事件,就叫中断。1.中断请求产生:外设申请中断(GPIO中断,定时器中断)3.退出中断:执行完毕,返回被打断的程序处,继续往下执行。所有的GPIO口都支持,但相同Pin不能同时使用外部中断。TTL电平就是:3.5v/5v为1 0V为0。触发方式:上升沿/下降沿/双边沿/软件触发。

2024-04-08 21:06:42 121

原创 CODE001

4.输入模式下可读取端口的高低电平或电压,用于读取按键输入,外部模块电平输入,ADC电压采集,模拟通信协议接收数据。3.输出模式下可控制端口输出高低电平,用来驱动LED,蜂鸣器,模拟通信协议输出时序。2.引脚电平0~3.3v 部分可以容忍5V。1.可以配置八种输入输出模式。GPIO通用输入输出端口。

2024-03-14 00:19:28 245

原创 嵌出式008

给有特定功能的内存单元取一个别名,这个别名就是我们经常使用的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名就是寄存器映射。M3内核—》总线矩阵—》flash(存储程序) 外设(GPIO,USART,I2C,SPI等) SRAM(存储变量的)ARM公司设计内核也就是驱动单元,还有一部分是SOC厂商ST设计的外设(被动单元)第一部分就是由ARM公司所设计的内核,交由ST进行设计许多外设。给存储器分配地址就是存储器映射,再分配一个地址就叫重映射。GPIO基地址:所在总线基地址加上偏移量就是外设基地址。

2024-03-11 22:54:35 219

原创 嘉立创画PCB板子入门喔

为什么一般不用奇数,奇数层的板子只在一层压铜箔,就工艺而言需要进行冲压,在报价方面是以偶数层去报价的,在板子制作过程中偶数层的PCB板子比奇数层更容易控制。单层板,双层板(就是在单层板的基础上过孔到背面),四层板,六层板(四层,六层就是在双层板子基础上通过通孔,盲孔,埋空完成)一般以偶数去打板。PCB是没有组件的电路板,PCBA是焊接有电子组件的电路板。丝印,焊盘,绿油 定位孔,

2024-03-10 21:51:25 624

原创 电流环,速度环,位置环以及PID算法的简单了解

pid算法的一般形式:PID控制其实就是对偏差的控制,如果偏差为0,则比例环节不起作用,只有存在偏差的时候,比例环节才起作用,积分环节主要来消除静态误差,所谓静态误差,就是系统稳定后输出值和设定值之间的差值,积分环节实际上就是偏差累计的过程,把累计的误差加到原有系统上用来抵消系统造成的静态误差,而微分信号则反映了偏差信号的变化规律,也可以说是变化趋势,根据偏差信号的变化趋势进行超前调节,从而增加系统的预知性。如有改善,可将元整定的比例度减少,改变积分时间,这样多次反复,就可以得到合适比例度和积分时间。

2024-03-09 21:39:20 1155

原创 SPI通信

差不多就是SPI主机通过移位寄存器移动一位,通过mosi传输到从机的移位寄存器 ,然后从机的移位寄存器在从高位移出一位到主机中,循环往复。直接调用读取时序,无需使能,无需额外操作,没有页的限制,读取操作结束后不会进入忙状态,但不能在忙状态时读取。SPI没有接收和应答机制,发送就发送,接收就接收,主打一个财大气粗,简单粗暴。连续写入多字节时候,最多写入一页数据,超过页尾位置的数据,会回到页首覆盖写入。SPI和IIC一样,每读写一个字节,地址指针自动加1,实现连续读写多个字节。

2024-03-07 22:48:02 382

原创 嵌出式006

*

2024-03-05 22:49:34 216

原创 串口通讯代码

串口发送数据包分为可变数据长度和不可变数据长度 HEX类型一般使用不可变数据长度 文本类型一般使用可变数据长度,此处使用了一个状态机概念,其实就是比flag的0和1多了一个判断的标志位。2.根据手册查看对应串口所在的引脚并且打开对应GPIO的时钟。4.根据需求封装相关函数,方便使用的时候直接调用即可。串口的发送与接收(配置中断函数完成收发功能)3.GPIO初始化,usart初始化。1.打开所要用到的串口的时钟。

2024-03-04 09:47:59 752

原创 通讯wow

波特率:串口通信的速率 由于串口通信是异步通信因此需要实现规定两个通信设备的通信速率 波特率就是每秒传送码元的速率。空闲的时候置为高电平,需要发送数据的时候设置一个低电平产生一个下降沿,告诉设备开始发送数据了。串口通信:应用广泛,成本低,容易使用,通信线路简单,可以实现两个设备的通信。USART 引脚:TX RX;全双工,异步时钟,单端电平,点对点设备。差分信号:靠两个差分引脚的电压差来传输信号的,传输距离远,抗干扰能力强。通信的目的:将一个设备的数据传送到另外一个设备,扩展硬件系统。

2024-03-03 22:36:10 316

原创 嵌出式工程师小小知识点006

2.滤波作用:在电源电路中,整流电路将交流变成脉动的直流,而在整流电路之后接入一个较大容量的电解电容,利用其充放电特性,使整流后的脉动直流电压变成相对比较稳定的直流电压;需要注意的是,如果地线和零线直接的电压差为0,则有可能是电工将地线和零线接在了一起,送至配电箱的零线端。这里的高通,指的是高频信号能通过,而低频信号较难通过,直流完全通不过;如何测二极管:是电流只可以从二极管的一个方向流过,二要用万用表打到电阻档测量一下反向电阻如果很小就说明这个二极管是坏的,反向电阻如果很大这就说明这个二极管是好的。

2024-02-28 22:20:43 362

原创 嵌出式005

/等待EOC标志位,即等待AD转换结束 EOC规则组转换单位。//此函数是配置ADC的CLK的,可以对APB2的72M时钟选择2,4,6,8分频,输入到ADCCLK。1.开启RCC时钟包括ADC和GPIO时钟,此外ADC CLK的分频器也需要配置一下。最后只需要在Main函数中调用此函数,把参数改成通道1,通道2。4.配置ADC转换器,在库函数中使用的是结构体配置,可以配置一大块电路的参数。

2024-02-28 21:28:53 244

原创 嵌出式004

3.配置输出比较单元:CCR的值,输出比较模式,极性选择,输出使能这些参数。4.配置GPIO,把PWM对应的GPIO口,初始化为复用推挽输出的配置。输入PWM信号要求:周期20ms,高电平宽度0.5ms-2.5ms。1.RCC时钟开启,把需要用到的TIM时钟外设和GPIO外设打开。舵机:是它是一种根据输入PWM信号的占空比来控制输出角度的装置。2.配置时基单元,包括时钟源选择。

2024-02-27 00:26:17 148

原创 嵌出式003--外部中断

输出比较可以通过比较CNT与CCR寄存器的关系,来对输出电平进行置1,置0,或翻转的操作,用于输出一定频率和占空比的PWM波形,每个高级定时器和通用定时器都拥有四个输出比较通道,高级定时器的前三个通道额外拥有死区生成和互补输出功能。NVIC的中断优先级分组由优先级寄存器4位组成,这四位可以进行切分,分为高N位和低4-N位的响应优先级,抢占优先级高的可以嵌套中断,响应优先级高可以优先排队,抢占优先级和响应优先级相同的可以按中断号排队。TIM定时器可以对输入的时钟进行计数,并在计数值达到设定值的时候触发中断。

2024-02-25 21:34:12 1007

原创 嵌出式002

【代码】嵌出式002。

2024-02-20 23:53:33 88

原创 嵌出式------001

施密特触发器对输入电压进行整形,高于电压输出高 低于电压输出低 用来界定0和1,因为输入进来的电压波形不是很整齐的,因此添加一个施密特触发器用来整形信号。输入模式下可读取端口的高低电平用来读取按键的输入,外接模块电平信号的输入,ADC电压采集,模拟通信协议。

2024-02-19 22:47:45 1489 2

原创 嵌出式学习又一天

1.接口电平低,不易损坏芯片,接口信号电平比232低,不易损坏芯片,高电平1以两线的电压差表示2-6v 低电平以两线电压-(2-6)v表示,且该电平与TTL电平兼容(TTL电平信号规定,+5V等价于逻辑“1”,0V等价于逻辑“0”)485属于串口通信,属于物理层的,规定为2线,半双工的多点通信标准,它的电气特性不一样,用缆线两端电压差值来表示传递信号,rs485仅仅规定了接收端和发送端的电气特性,没有规定任何数据协议。理想情况下485需要两个匹配电阻,其阻值一般要求等于传输电缆线的阻抗(一般为120Ω)

2024-01-11 00:57:14 1525 2

原创 嵌出式学习的一天

除非APB1的分频系数是1,否则通用定时器的时钟等于APB1的时钟的2倍。4.内部触发输入itrx:使用一i个定时器作为另一个定时器的预分频器。3.外部时钟模式2:外部触发输入(ETR)2.外部时钟模式1:外部输入脚(TIX)

2024-01-09 23:39:31 742

原创 keil5调试问题

一个问题,按照csdn的方法去解决依然没有解决STLINK调试的时候监测不了局部参数?

2024-01-08 23:57:57 379

原创 嵌出式学习小结

窗口就是在喂狗的时间是有一个上下限的范围,可以通过设定相关寄存器,设定其上限时间(下限是固定的)。对于一般看门狗而言,程序可以在它产生复位前的任意任意时刻刷新看门狗,但这样有一个隐患,有可能程序跑飞又回到了正确地方,或跑乱的程序正好执行了刷新看门狗操作,这样的情况下一般的看门狗就检测不出来。如果使用窗口看门狗,程序员可以根据程序正常执行的时间设置刷新看门狗的一个时间窗口,保证不会提前刷新看门狗也不会滞后刷新看门狗,这样可以检测出来程序没有按照正常路径运行非正常跳过某些程序段的情况。窗口看门狗的注意事项。

2024-01-07 22:16:47 398

原创 嵌出式开发学习

因为单片机在工作的时候时常会受到外界磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞的状态,发生不可预料的后果,所以处于对单片机运行状态进行实时的监测的考虑,便产生了一种专门用于监测单片机运行状态的模块或者芯片,也就是看门狗。无论何时,只要在键值寄存器中IWDG_KR中写入0xAAAA(通常说的喂狗),自动重装载寄存器 IWDG_RLR的值就会重新加载到计数器,从而避免看门狗复位。//状态 重装载/预分频更新。

2024-01-07 14:50:25 451

原创 嵌出式————按键

key.c支持按键连续按 S为0不支持连续按 S为1支持连续按。

2024-01-02 21:52:53 354

原创 嵌出式srtm32学习第一天

叫外设的函数放在HARDWARE中,本次写的是点亮LED,故里面放入的则是LED.H和LED.C。//初始化PB5和PE5为输出口.并使能这两个口的时钟。基于库函数的开发模板的搭建,点亮一个小灯灯。在LED.C文件中写初始化函数即可。//LED IO初始化。

2023-12-28 20:50:50 422

原创 51单片机学习

SBUF:串口数据缓存寄存器,物理上是两个独立的寄存器,但占用相同地址,写操作时,写入的是发送寄存器,读操作时,读出的是接收寄存器。串口通信:是一种十分广泛的通讯接口,串口成本低,容易使用,通信线路简单,可以实现两个设备的相互通信。RS485电平:两线压差+2-+6表示 1 -2到-6表示0。RS232电平:-3V~15V表示1 +3-15表示0。单片机用的就是TTL电平:+5V表示1 0V表示0。模式1:8位uart 波特率可以变 (常用)模式3:9位uart 波特率可变。

2023-08-27 23:54:29 183

原创 密码索索索

【代码】密码索索索。

2023-08-27 01:29:10 80

原创 LCD1602的相关代码

基于stc89c52rc的LCD1602.c文件。

2023-08-26 23:08:15 530

原创 更正代码1

四行对应的io口 其中一个为0就是扫描该行,其他就是1,再确定列 如果1234列中其中对应一个为0,就能准确确定该按钮的位置了。矩阵键盘是输入扫描,读取第1行/列->再读取第2行/列 然后快速循环这个过程,最终实现所有按键同时检测。先选择第几个 P2的234端口对应12345678 的数码管 选择后再赋值即可。1.首先将对应的LCD1602的c文件和对应的H文件导入项目中。采用逐行或者逐列的扫描,就可以读出任何位置按键的状态。=======LCD1602的调试。数码管的扫描是一种输出扫描。

2023-08-26 23:04:29 59

原创 单片机的第三天

3.机器周期:一个机器周期包含了6个状态周期s1-s6也就是12个时钟周期。在一个机器周期内,cpu可以完成独立的操作。4.指令周期:他是指cpu完成一条操作所需要的全部时间。利用该函数实现跑马灯效果 需要导入对应头文#include<instrins.h>三极管:放大电流 bce三级 e指向b就是pnp型 npn就是b指向e。2.状态周期:每个状态周期为时钟周期的两倍,是振荡周期经过二分频后得到的。1.振荡周期:也叫做时钟周期,是指单片机提供时钟脉冲信号的振荡源周期。单片机工作的基本时序。

2023-08-23 23:56:51 36

原创 单片机学习第二天

真值表中L 表示低 H表示高 Z表示数字电路中高阻状态,介于低电平和高电平之间的一种状态,既不是高电平也不是低电平,根据所连接电器的电平有关,如果所连接的电平是高电平那么他就是高电平反之亦然。Vcc电源 LE是锁存器的锁存端,当LE是高电平时,LE与D端高低电平有关系,如果LE是电平,那么无论D是什么电平,依旧保持上一次电平的状态。usb电源一般就是开关电源,类似开关控制电流,电流过大,关闭开关,电流过小打开开关,这样可以让电流平均下来多大。Hex和bin文件都是一样的只是一个是16一个是2。

2023-08-23 00:48:08 154

原创 8.22自学单片机第一天

滤波是电容的作用中很重要的一部分。从理论上说,电容越大,阻抗越小,通过的频率也越高。先将原理图的各个部分弄出来 基于原理图库 再用导线完成对应的连接完成原理图的绘制 PCB库是相当于一个桥梁将原理图中的器件映射到PCB中 库就相当于一个模型 PCB主要是布局布线。集成了8位cpu 4k字节的rom 128字节的RAM 4个8位并口 1个全双工串行口 2个16位定时/计时器 寻址范围64K 并有控制功能较强的布尔处理器。旁路电容是主要是把输入信号的高频噪声滤除,而去耦电容是把输出信号的干扰去除。

2023-08-22 00:06:36 44

原创 选择性编译

如果在当前.c ifdef上边没有定义过AAA则编译代码段1 否则编译代码段2。如果在当前.c ifdef上边定义过AAA则编译代码段1 否则编译代码段2。如果表达式为真,编译第一段代码,否则编译第二段代码。选择性编译是预编译的时候使用的。用来防止头文件重复包含。

2023-08-06 23:46:10 50

原创 C语言的基础

volatile:是易变的,每次进入的时候告诉cpu是容易变化的,使用的时候需要重新去内存取\转义字符字符型用单引号字符串用双引号%d 十进制有符号整数%c 单个字符%u 十进制无符号整数%x 十六进制表示整数%o 八进制表示的整数%e 指数形式的浮点数%s 字符串特殊应用%3d 要求宽度为3 不足三位 前面补空格%03d 要求宽度为3 不足三位 前面补0%-3d 要求宽度为3 不足三位 后面补空格%.2f 小数点只保留两位构造类型。

2023-08-06 23:23:14 41

原创 学生管理系统完整版(控制台版本)

package com.ArrayList;/** * @program: BasicJavaTest * @Author: jiahui * @Description: * @create: 2021-12-08 16:11 */public class Student { private String name; private int age; public Student() { } public Student(String name,

2021-12-09 18:58:05 407

原创 String相关知识

s1=“123”;//这一步是让s1这个字符串类型的变量,记录了一个新的对象,并不是修改字符串,只能被整个替换//String常见的构造方法//1.空参数构造方法,注意String这个对象打印时不会打印出地址而是对应的值String s2=new String();System.out.println(s2);//2.根据字符数组内容创建对象char[] chs={‘a’,‘b’,‘c’};String s3=new String(chs);//把字符串数组串成一个整体System.out.

2021-12-08 19:32:11 280

原创 开卷有益------关于StringBuilder相关知识点(若有不足之处还请赐教)

StringBuilder是一个容器,可以装任何类型,装进去就变成string类型 可变数据类型StringBuilder提高字符串使用速率System.currentTimeMillis();//打印1970年到现在的毫秒值构造方法:StringBuilder也不会打印出地址和字符串一样打印出来是字符串内容成员方法append()添加数据,返回数据本身 sb1.append(“2222”).append(“3333”); 链式编程reverse() 返回相反数据序列length(

2021-12-08 19:28:02 295

原创 this关键字和private

两个引用对象指向同一个对象,对象类型变量就是引用类型的变量,记录就是一份地址当student stu1=new student()student stu2=stu1//就是将stu1的地址赋值给stu2两个引用对象指向同一块内存空间当访问时,访问的结果都是记录的最后一次改变的值垃圾回收:当堆内存中,对象或者数组产生的地址,通过任何方式都不能被找到时,就会被判定为垃圾对象,垃圾会被Java垃圾回收器空闲的时候进行清理成员变量:类中方法外 在栈内存 对象消失而消失 存在而存在局部变量:方法内.

2021-11-28 22:57:45 199

原创 java内存地址

两个对象的内存图:再new一次student的字节码.class文件不需要再加载一次,可以直接用

2021-11-28 22:34:27 334

原创 面向对象的基础知识

面向对象和面向对象的思想过程对比面向过程:是一种以过程为中心的编程思想 都是自己实现 自己干活面向对象:是一种以对象为中心的编程思想,通过指挥对象实现具体的功能 指挥别人做事对象:指客观存在的事物 万物皆是对象 变成指挥者类:类是对现实生活中一类具有共同属性和行为的事物抽象 类是对对象一种描述 根据类去创建对象 由属性和行为组成对象:能看的到的摸得着的真实存在的实体类是对对象的描述,对象才是真实存在的实体 根据类可以创建多个对象类是由属性和行为组成属性:在代码中通过成员变量来体现,(

2021-11-28 22:05:22 73

501309-录像-A3057程序设计论坛网站的设计与实现-PHP+MYSQL.exe

501309-录像-A3057程序设计论坛网站的设计与实现-PHP+MYSQL.exe

2022-12-01

空空如也

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

TA关注的人

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