- 博客(46)
- 收藏
- 关注
原创 C++学习
数据类型-实型字符型字符型只能使用‘ ’进行创建,用双引号会报错创建字符型变量时候,单引号内只能有一个字符\t水平制表符,算上前面的内容一共留下8个字符空间水平制表(HT)(跳到下一个TAB位置)算术运算符两个小数是不可以做取模运算的,只有整形变量可以进行取模运算。
2024-08-25 20:24:27
847
原创 每日一题(6.22-6.28)
(。・∀・)ノ゙嗨,中途考电路分析去了,空了几天的题没有练,为什么三相电路他都没讲过的都要考啊?我服了,什么在Y型三相电路,线电压和相电压的比值都考(虽然很基础,答案应该是根号3,我填了1.732,不知道给不给分)。不过,之后又要考高数,大英还有近代史,两门背诵科目,又要花一些时间嘞~填入p[i]或*(p+i)时,在没有到达字符串结尾时,条件判断为真,但当p[i]或*(p+i) == “/0",条件判断为假。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。第二层3个(排列成三角形)
2024-06-30 16:50:20
349
原创 collections模块
只有可哈希的对象才可以作为字典的key,而immutable的对象是可哈希的tuple的拆包,分别进行映射tuple的不可变不是绝对的。
2024-05-05 20:16:59
394
原创 Python(乱学)
只有__init__.py文件存在于文件夹当中,那么这个文件夹就是python包,否则就是一个普通的文件夹。父类拥有部分功能,子类在父类的基础上拓展了相应的功能,但要沿用父类的一些功能可以直接调用父类成员,不用重写。字典在转化为其他类型时,会出现是否舍弃value的操作,只有在转化为字符串的时候才不会舍弃value。右键run 的时候内置函数__name__就会被标记为__main__,故if语句成立,执行。当以from的模块导入运行的时候,不会被标记为__main__将现实世界的事物封装到了程序的内部。
2024-04-01 09:19:49
3508
1
原创 PID算法
1.适用于二阶以内的线性系统满足齐次性和叠加性1.齐次性2.叠加性(1)可以将高阶系统转换为低阶系统(2)用李亚普诺夫第一方法在非线性系统的平衡点处线性化以上两种方法就可以实现PID系统对非线性系统和高阶系统进行控制2.宏观意义上手简单,不需要进行精确的建模。
2024-03-07 20:17:50
461
原创 卡尔曼滤波
针对身高和体重,有可能出现概率较低的又矮又胖或又高又瘦,我们对计算加入概率因素,进行加权平均 ,和所有点的值进行比较,那么就和与均值进行比较效果是一样的。Q是过程噪声,假设一物体运动,Q可以看成是环境的阻力。由于Zv为0,所以前面的Zt矩阵部分可以只写Zp。卡尔曼滤波存在估计值和观测值,进行数据的修正。滤波将噪声尽量去除,使数据更趋近于真实值。2.状态方差,估计值就是状态的一个方差。Vk:观测噪声(与观测器的误差有关)R是观测噪声的方差,由传感器决定。1.噪声的方差,Qk和Rk。
2024-03-06 18:27:10
690
1
原创 C语言数据存储
对于无符号数据类型的每一位都可以作为有效位存储数据剥鸡蛋从大端还是从小端剥对于一个字节大小的数据,没有字节存储顺序可谈大小端取决于硬件如何代码表示机器的硬件的字节存储形式int main()int a = 1;printf("大端");printf("小端");return 0;最好将判断大小端的代码封装成一个函数。
2024-02-25 19:38:56
391
原创 C语言调试
Debug称为调试版本,包含调试信息,并且不作任何优化,便于程序员调试程序Release称为发布版本,往往进行了各种优化,使得代码大小和运行速度上都是最优的,一边用户的使用,没有调试信息,得到的.exe文件大小比较小直接就会将10个数打印出来ctrl+F5:编译-链接+生成可执行程序按下F5后会一直执行程直到程序运行结束,通常与F9配合使用,进行调试设置断点,不能跳过scanf(),必须进行完互动才可以跳到断点注:调试过程中尽量不要返回到上一步,因为结果会不准确调试的时候查看程序当前的信息。
2024-02-24 18:08:53
1172
原创 32FLASH闪存
存储器地址要记得累系统存储器是原厂写入的Bootloader程序(用于串口下载),是不允许修改的闪存存储器接口是外设,用于管理FLASHOTA,程序升级IAP:自定义一个Bootloader在FLASH中,当需要更新程序时,就从程序代码跳转到Bootloader,接收程序更新数据然后覆盖原程序,重新再跳回到原程序整个升级过程,都可以自主完成整块擦除,信息块的内容不受影响FPEC会自动计算反码在编程过程中,任何读写闪存的操作都会使CPU暂停,会导致中断函数执行的暂停。
2024-02-21 22:27:00
453
原创 32看门狗
IWDG的专用时钟是LSI,内部低速时钟WWDG使用的是APB1的时钟,并没有专门的时钟,所以并不独立如果独立看门狗已经由硬件选项或软件启动, LSI振荡器将被强制在打开状态,并且不能被关闭。在LSI振荡器稳定后,时钟供应给IWDG喂狗或使能的时候会在键寄存器写入0x5555之外的值进行寄存器的写保护尽量让预分频系数小,因为有时根据结果算出的RL可能是小数,那么取整以后会造成每次喂狗都会有一点的误差,但预分频系数大的话,会减少RL的重置频率这些时间是按照40kHz时钟给出。实际上,MCU。
2024-02-21 17:17:00
697
原创 32PWR电源控制
芯片在睡眠模式下不能进行下载程序只有外部中断才可以实现唤醒停止模式USB和ETH可以通过其WeakUp,唤醒信号接道EXTI外部中断电压过低的情况下,可能会导致内部或外部电路发送不确定的错误低功耗模式针对,数据采集器,车钥匙,遥控器,报警器等等外部中断的工作是不需要时钟的 ,EXTI不需要时钟。
2024-02-21 10:16:39
651
原创 32RTC&BKP
后备寄存器VBAT(V Battery)备用电池电源TAMPER引脚,对应PC-13-TAMPER-RTC,对应PC13引脚,可以用于设计侵入检测功能校准时钟可以对内部RTC微小误差进行校准,可以配合校准寄存器闹钟脉冲或者秒脉冲,可以输出为其他设备提供信号在51中,DS1302是外设的 RTC芯片,可以进行独立计时而在STM32内部,具有RTC外设高速时钟供内部程序运行和主要外设使用低速时钟供RTC,看门狗使用,LSE时钟为了省电默认是关闭的。
2024-02-20 17:13:59
634
原创 32MPU6050&姿态解算
运动检测有高通滤波器可以滤除重力造成的稳定数据偏置,当加速度计静置时,消除那一个g的重力加速度。MEMS说公司研发的微机电系统,可以用电子的方案进行姿态测量。时钟源:内部晶振,陀螺仪晶振和外部时钟引脚的方波。芯片内部含有自由落体检测,运动检测和零运动检测。MPU6050无SPI相关电路。
2024-02-11 09:34:50
675
原创 32I2C通信协议&I2C读写MPU6050
从机设备地址在I2C协议里分为7位地址和10位地址不同型号的芯片地址都是不同的,相同型号的芯片地址都是一样的,如果有相同的芯片挂载在同一条总线上,需要用到地址中的可变部分(可以在电路中改变)
2024-02-09 17:03:34
781
原创 32串口数据包
2.尽量使用固定长度的数据包,先通过包头和包尾对数据进行对齐,在接收载荷数据,并不会对其判断是否为包头包尾,而在接收包头和包尾,则会对其判断是否为包头包尾。数据直观易理解,非常灵活(适合一些输入指令进行人机交互的场合,蓝牙模块常用的AT指令,CNC和3D打印机常用的G代码),但解析效率低。3.增加包头和包尾的数量,尽量让其呈现出载荷数据出现不了的状态(也可以不要包尾)数据包格式可以由用户根据需求自己规定,得到的数据形式为字符数组。将数据按批进行打包和分割,方便接收方进行识别。得到的数据形式为字符串。
2024-02-09 10:19:09
874
原创 32USART串口
S:同步,它只支持时钟输出,不支持时钟输入,更多是为了兼容别的协议或者特殊用途而设计的并不支持两个USART之间的同步通信硬件流控制(防止接收数据的设备处理慢而导致数据丢失):有A发送设备和B接收设备,在硬件电路上多出一根线,如果B没准备好就置高电平,准备好就置低电平,A通过线路接收到B反馈的准备信号,就只会在B准备好时发送数据LIN:局域网的通信协议USART1时APB2总线上的设备,USART2,USART3为APB1总线上的设备USART框图。
2024-02-07 21:56:36
739
原创 32DMA数据转运
DMA外设是可以直接访问32内部的存储器的,包括运行内存SRAM,程序存储器Flash和寄存器等外设的数据寄存器DR,Data Register存储器到存储器之间的转运需要软件触发外设到存储器之间的转运需要硬件触发,对上外设数据的时机主闪存的地址以0x800开头外设寄存器都是0x40开头选项字节存储Flash的读保护,写保护还有看门狗等等的配置SRAM也就是程序中定义变量,数组,结构体的地方内核外设就是NVIC和SysTick,内核外设和其他外设不是一个公司设计的。
2024-02-07 10:26:10
537
原创 32ADC模数转换器&AD单通道&多通道
数字电路只有高低电平,没有几伏电压的概念PWM就是DAC的功能,同时PWM只有完全导通和完全断开的两种状态,这两种状态都没有功率损耗12位(0~2的12次方减1=0~4095),位数越高,量化结果就越精细,对应的分辨率就越高1us对应AD转换频率为1MHz(最快),ADC转换的信号频率不要超过AD最快转换频率温度传感器可以测量CPU的温度规则组:常规使用;注入组:用于突发事件模拟看门狗可以检测某些通道,当AD值高于或低于设定的上阈值或低于下阈值时,就会申请中断执行对应的操作。
2024-02-04 19:08:29
955
原创 32OLED&中断系统&对射式红外计数&旋转编码计数
中断函数的二层if判断是在中断标志位置1后,判断PB14是否输出0,如果输出为0,那么电源灯亮,此时挡光片移开,count++;事件响应(不会触发中断)则是触发其他外设的操作,比如触发ADC转换,触发DMA........,属于外设间的联合工作。EXTI外部中断,TIM定时器,ADC模数转换器,USART串口,SPI通信,I2C通信,RTC实时时钟。抢占优先级,有一个病人还在看病,而需要紧急的看病的病人直接让其靠边站,等到自己看完病再让旁边等的人看。对于外部硬件,并没有在进入中断时,进行现场保护。
2024-01-29 23:20:03
710
原创 32GPIO输入&按键控制LED&光敏控制蜂鸣器
所以要在LED_Init最后加上GPIO_SetBits(...);上面这一个电路,当引脚被强行拉到低时,损耗也会大一些。stdint定义的是新版本的,ST是老版本的。ctrl+Alt+空格:弹出代码提示框。红外光线越强,红外接收管的阻值就越小。温度越高,热敏电阻的阻值就越小。光线越强,光敏电阻的阻值越小。对模拟电压进行二值化。(1)自己的代码逻辑。(2)视频的代码逻辑。
2024-01-28 11:03:07
864
原创 32GPIO输入&LED闪烁&蜂鸣器
所有的GPIO都挂载到APB2上,每个GPIO有16个引脚内核可以通过APB2对寄存器进行读写,寄存器都是32位的,但每个引脚端口只有16位驱动器用于增加信号的驱动能力。
2024-01-26 18:43:14
2651
1
原创 STM正点mini-跑马灯
GPIO的输出方式:推挽输出IO口输出为高电平时,P-MOS置高,输出为1,LED对应引脚处为高电平,而二极管正0极被电阻拉高,两端都为高电平,LED灭IO输出为低电平同理。
2024-01-24 22:18:30
835
原创 STM正点mini-新建工程模板,GPIO及寄存器(介绍)
对MDK而言即使include了,也不知道在哪里找头文件。这里的启动文件都是根据容量来进行区分的。一.新建工程模板(基于固件库)二.新建工程模板(基于寄存器)上面的大部分配置与固件库的一样。1.1库函数与寄存器的区别。
2024-01-24 17:36:22
534
原创 STM正点mini-程序下载方法
但正点原子的开发板都是B0和B1接地,由于设计了一键下载电路。2.1flyMCU串口下载。3.1STM32启动模式。
2024-01-24 12:48:34
659
原创 32相关介绍
RCC是复位和时钟控制,可以,对系统时钟进行配置,使能各个模块的时钟,不给时钟的情况下,操作外设是无效的,外设也不会工作,目的是降低功耗。在STM32中外设上电的情况下默认是没有时钟的。“M”指MCU微控制器,即单片机。
2024-01-22 20:07:46
451
1
原创 51DS18B20
但DS18B20内部集成了芯片和RAM,其实际上里面也是采集模拟信号,但可以直接在内部将其转换为数字信号,再通过单总线通信协议将数据读出来。寄生供电:DS18B20 共3个引脚,其中,有两条是用于供电,一条用于数据的传输,但也可以不接VCC电源正极,直接两条解决数据通信。如果使用寄生电路,那么需要一个强上拉电路,但51没有强上拉电路,所以用不上寄生电路。总线结构:可以实现单片机一个IO口读取很多个温度传感器数据。热敏电阻就是模拟电路传感器。
2024-01-20 20:04:45
1165
1
原创 51AT24C02(I2C总线)
SRAM实质上是一种触发器(RS,JK,D)用电路来存储数据,是所有存储器最快的一个,主要用于CPU高速缓存,单片机定义的变量就是存储在SRAM里面。DRAM利用电容存储数据(以电容充放电(可以实现高低电平的转换)来存储数据),成本相对于SRAM低,容量更大,用于内存条和手机运行内存。PROM可以通过高电压击穿的二极管(高电压下短路)或熔丝(高电压下断路)来制作。RAM存储速度快,但掉电会丢失,当数据需要永久存储时才将其,转存到ROM。Y译码器将纵向的数据一位一位进行输出。二.I2C总线的介绍。
2024-01-19 13:34:48
484
1
原创 51-DS1302
32.768khz的晶振对于实时时钟而言是方便利用的,而且比较精准CE ,I/O ,SCLK是用于读取时间的,时钟数据是保存在寄存器当中的,通过通信协议进行数据交互,就可以对时间进行访问和读写。
2024-01-12 12:25:49
463
原创 C语言字符串
strlen只有在遇上'\0'才停止计数。用“ ”(双引号引起的就是一个字符串)用‘ ’(单引号引起的是一个字符)字符串要存起来,应该放到字符数组中。会自动根据后面的字符串长度确定大小。使用strlen时要包含'\0''\0'是字符串打印结束的标志。C语言中没有字符串类型。需要7个字节才能够放下。在字符串中\0无法打印。
2023-12-31 16:06:22
397
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人