- 博客(55)
- 问答 (1)
- 收藏
- 关注
原创 STM32-Flash闪存
STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分,通过闪存存储器接口(外设)可以对程序存储器和选项字节进行擦除和编程
2024-11-10 14:50:34
880
原创 STM32—独立看门狗(IWDG)和窗口看门狗(WWDG)
首先,利用的是LSI(40KHz)时钟信号,先通过8位预分频器进行分频,会产生一个状态标志位给状态寄存器,分频后的信号来驱动计数器递减。重装载寄存器是12位的,值是4096,给计数器重装载值。看门狗被激活后,则在计数器计数至0x000时产生复位。键寄存器:本质上是控制寄存器,用于控制硬件电路的工作,在可能存在干扰的情况下,一般通过在整个键寄存器写入特定值来代替控制寄存器写入一位的功能,以降低硬件电路受到干扰的概率。超时时间。
2024-11-09 22:05:15
1308
原创 STM32-PWR低功耗
1.8V供电区域有CPU核心存储器和内置数字外设(如USART、I2C、SPI等),通过电压调节器进行控制着电压。进行检测VDD电压的,当检测到VDD断电时,开关会切换到VBT来供电。2、上电复位和掉电复位VDD/VDDA低于指定的限位电压VPOR/VPDR时用户可以利用PVD对VDD电压与电源控制寄存器(PWR_CR)中的进行比较来监控电源,这几位选择监控电压的阀值。通过设置PVDE位来使能PVD。电源控制/状态寄存器(PWR_CSR)中的PVDO标志用来表明VDD是高于还是低于PVD的电压阀值。
2024-11-06 23:25:46
975
原创 STM32-BKP和RTC实时时钟
BKP可用于存储用户应用程序数据。当VDD(2.0~3.6V),电源被切断,他们仍然由VBAT(1.8~3.6V)维持供电。当系统在待机模式下被唤醒(需要VBAT供电),或系统复位(可以不需要VBAT供电)或电源复位(需要VBAT供电)时,他们也不会被复位TAMPER引脚产生的侵入事件将所有备份寄存器内容清除RTC引脚输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲存储RTC时钟校准寄存器用户数据存储容量:20字节(中容量和小容量)/84字节(大容量和互联型)
2024-11-03 12:12:56
1145
原创 51单片机——OLED显示图片
如果想要图片调整为128x64大小,这个最大宽度最好设置为136,高度为64,我设置后,图片输出为123x64,可以通过PCtoLCD2002再进行调整大小。取模软件:链接:https://pan.baidu.com/s/1UcrbS7nU4bsawNxsaaULfQ 提取码:gclc。软件进行调整图片大小,一般取模软件使用的是.bmp图片,可以进行输出.bmp格式。1、如果图片大小和格式不合适,可以先用I。
2024-10-18 19:48:08
876
原创 STM32-USART串口协议
硬件流控制,就是防止接收设备处理数据速度慢,而导致数据丢失的问题,比如A设备Tx向B设备的Rx发送数据,A设备一直在发,发的太快了,B设备处理不过来,如果没有硬件流控制,那B设备就只能抛弃新数据或者覆盖原数据了。接收寄存器类似,当我们接收数据时,数据会从高位往低位这个方向移动,也就是向右移,当接收一个字节后,会向RDR寄存器转运,同时,RXNE(RX Not empty,接收数据寄存器非空)会置1,者样我们就可以读走数据了,USART1挂载在APB2总线上,所以就是PCLK2的时钟,一般是72MHz。
2024-10-12 23:49:43
1321
原创 STM32-DMA直接存储器存取
在总线矩阵这里也有个仲裁器,当CPU和DMA同时访问同一个目标,那么DMA就会暂停CPU的访问,以防止冲突,不过总线仲裁器,仍然会保证CPU得到一半的总线带宽,使CPU也能正常工作。接着就是触发源,有软件触发源和硬件触发源,具体是哪个由M2M(memory to memory)参数决定,当我们给这个M2M为1时,就会进行软件触发,它这个软件触发的逻辑是。,比如ADC转换数据,需要转运数据就需要通过这条线路,向DMA发出硬件触发信号,之后DMA就可以执行转运的动作了,数据寄存器都是可以正常读写。
2024-10-11 23:47:33
562
原创 STM32-ADC模数转换
以ADC0809芯片为例,通过地址锁存器进行控制通道选择开关,ADDA、B、C端的电平为000时,IN0通道选通;001,IN1通道选通,以此类推。ADC比较器是由时钟进行推进的。首先,控制逻辑电路使N位寄存器最高位(Dn-1)置1,其余清零。经。将VN和Vx比较,若Vx>=VN,则保留Dn-1=1;若Vx
2024-10-11 22:15:41
1505
原创 STM32-TIM输入捕获
PWMI(PWM输入)模式,同时测量频率和占空比主从触发模式以下为输入捕获的框图,左边一共有4路输入通道,对于同一个定时器输入捕获与输出比较只能使用其中一个。这个异或门的输入接在了通道1,2,3端口,异或门执行逻辑是:当三个输入引脚的任何一个有电平翻转时,输出引脚就产生电平翻转,之后输出通过数据选择器,到达输入捕获通道1。当数据寄存器不选择异或门时,就没有用,设计这个异或门,其实还是为三相无刷电机服务的。然后来到输入滤波器和边沿检测器,滤波器是滤除噪声的不会改变频率,边沿检测器是检测是上升沿还是下降沿。
2024-10-08 15:19:22
874
原创 STM32定时器(TIM)
TIM(Timer)定时器定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断16位计数器、预分频器、自动重装寄存器的时基单元,在72MHZ计数时钟下可以实现最大559.65s的定时(stm32级联两个16位计数器)不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型二、定时器的类型基本定时器:拥有定时中断、主模式触发DAC的功能。
2024-10-06 16:23:40
1056
原创 STM32中断——外部中断
中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源。中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回。STM32中有68个可屏蔽中断通道。
2024-10-05 21:12:48
2011
2
原创 STM32GPIO输入和输出
上面部分是输入,下面是输出。1、I/O输入:首先,从I/O引脚开始,有两个保护二极管,。上面二极管接VDD为3.3V,下面二极管接VSS为0V。当输入电压为超过3.3V,则会导通上面的二极管;当输入电压小于0V也就是负电压,则会导通下面的二极管;如果输入电压为0~3.3V,则二极管不会导通,会正常输入。接着,来到上拉电阻和下拉电阻。上拉电阻接的VDD,下拉电阻接的VSS,。如果上面导通,下面断开,就是;如果下面导通,上面断开,就是;如果上面和下面都断开,则为。。
2024-10-03 12:16:45
1664
原创 STM32器件支持包安装,STLINK/JLINK驱动安装
加载完毕,选好器件之后,可以直接点击install,下载的速度会慢一些。keil5自带了ST_LINK的安装包。如下图,打开keil5所在的文件夹,找到。先下载支持包之后,再进行安装。如下图要安装STM32F1系列,双击。器件支持安装包,左侧为不同公司生产的器件型号,右侧为对应的安装包。,如果电脑是64位就选择64,否则选择x86,进行点击安装。因为我已经安装了,所以右侧显示更新的状态哈。,看最后一个红框加载进度,加载速度会慢一些。安装之后,在此电脑中,右键点击属性,找到。,然后点击下一步,直接安装。
2024-10-01 15:26:34
2203
原创 全志H616系统启动和登录
刷完机烧入镜像,直接用MobaXterm软件串口登陆约定固定的波特率115200。默认登录:用户:orangepi 密码:orangepi或用户:root 密码:orangepi在输入密码时是不显示出来的。登录成功出现如下界面:先输入原始密码,再输入新密码,再次输入新密码,然后重启。输入命令过长,可在后面加个\进行换行。出现successfully即成功了。可以使用ifconfig进行查看ip地址,或者使用查看ip地址。
2024-08-25 13:07:39
521
原创 在VMware16版本中安装ubuntu22.04.4镜像以及ubuntu镜像文件下载,配置更改,安装常用软件
1-1、官网https://ubuntu.com/download1-2、镜像网站快速下载官网下载速度慢的话可以直接百度各大学的镜像下载网站去下载,如下以清华镜像网站为例:1、百度搜索 清华镜像网站,附上网址:https://mirrors.tuna.tsinghua.edu.cn/2、进入镜像网站直接搜索ubuntu,然后选择ubuntu-releases,也可以直接点击链接:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.
2024-07-23 16:37:47
3544
原创 树莓派驱动从认识框架到写驱动
从我的学习过程来说,比如学习51单片机时,我们要学习许多外设开发,这时我们就要写相关驱动代码,让外设能正常跑起来,如点亮LED灯等等,完成相应功能。但要自己写对应的驱动代码难度非常大,用树莓派学习的目的不仅是为是体验其强大便捷的wiringPi库,更要通过树莓派学会linux内核开发,驱动编写等,做一个属于自己的库。含有关硬件设备的信息。下都能看到鼠标,键盘,屏幕,串口等设备文件,硬件要有相对应的驱动,那么open怎样区分这些硬件呢?所谓框架,就是定死的东西,基本的语句必须要有,少一个都不行。
2024-02-18 21:49:59
974
原创 树莓派登录方式
输入命令ifconfig 查看ip地址,然后看ip地址是否正常:在windows命令提示符中输入:ping 树莓派ip地址,有数据传递则是正常。然后 Ctrl+o保存, 会有提示是否写入,我们按回车,Ctrl+x退出,然后重启。设置完成后,点击OK, 插入上电源和USB-TTL即可,当出现登录请求,输入对应用户名和密码,则登录成功。选择OK 回车,又回到了起初的界面,用电脑左右键选择finish,然后回车。",将里面的内容全部替换成以下内容,以防万一,请先备份好这个文件的原内容。2.然后再修改根目录的"
2024-02-18 17:33:25
1367
原创 linux交叉编译方法——虚拟机编译,在树莓派平台上运行
当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下。1. 正常我们先要交叉编译wiringPi库,编译出的库适合树莓派,这时候交叉编译可执行程序的试试,链接库的格式也是正确的。它的作用是将当前路径下的a文件夹中的test文件,在当前路径的b文件夹中建立软连接,并且用一个新的名字为hello。宿主机(host) :编辑和编译程序的平台,一般是基于X86的PC机,通常也被称为主机,如虚拟机。
2024-01-31 21:27:38
1294
原创 linux中的静态和动态库
对于不加 -fPIC生成的动态库,“ 生成动态库时假定它被加载在地址 0 处。要是永久有效,进入~/.bashrc 文件把 export LD_LIBRARY_PATH=库的目录 ,放在最后,打开新的窗口在运行。-L:告诉gcc编译器从-L制定的路径去找静态库。出现上述错误时,需配置环境变量export,因为在执行程序时,动态库要临时调用,默认是从/usr/local下找。注释:-lcalcufunc -l(小写的L)是制定要用的动态库,库名砍头去尾。静态库的制作:格式xxxx.a。
2024-01-29 21:48:31
411
原创 SQLite数据库的下载安装,以及进行增删改查操作
轻量化,易用的嵌入式数据库,用于设备端的数据管理,可以理解成单点的数据库。传统服务器型数据库用于管理多端设备,更加复杂:SQLite是一个无服务器的数据库,是自包含的。这也称为嵌入式数据库,这意味着数据库引擎作为应用程序的一部分运行。MySQL需要运行服务器,MySQL将需要客户端和服务器架构通过网络进行交互。基于嵌入式的数据库主要有:SQLiteFirebirdeXtremeDBFirebird是关系型数据库,功能强大,支持存储过程,SQL兼容等SQLite。
2024-01-26 22:34:05
2238
原创 libcurl的下载安装、使用,Get和Post访问http/https
libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传。libcurl的官网下载curl - Download ;安装openssl。
2024-01-19 22:57:24
2600
原创 在FileZilla中连接ubuntu时,出现错误:FATAL ERROR: Network error: Connection refused
由于我们刚安装ubuntu,openssh-server包没有安装,需要自己安装一下;
2024-01-17 22:27:53
533
原创 const修饰指针
为了方便记忆,把const看作常量,把int *看作指针,在定义时,const后面跟的如果是int *则是,常量指针,int*后面跟的是const则是指针常量。针指向的值可以改变,指向不可以改。指针指向的值不可以改变,指向可以改变。三、const即修饰指针,又修饰常量。一、const修饰常量——指针常量。二、const修饰指针——常量指针。指针指向的值和指向都不可以改。
2023-09-17 14:22:20
154
原创 数据结构与算法——链表,进行创建、输出、插入、删除和查找等等操作,写图书信息管理系统
数据结构与算法——链表,进行创建、输出、插入、删除和查找等等操作,写图书信息管理系统
2023-09-10 12:03:01
1104
原创 Esp8266-01s学习(二):作为路由器与stc51单片机相连点亮led灯
Esp8266-01s作为路由器时用指令:AT+CIFSR查询ip地址。
2023-09-10 00:03:35
498
原创 Esp8266-01s学习(一):作为设备模式连接服务器,与stc51单片机相连,通过串口通信点亮led灯。
ESP-01s出厂波特率正 常是115200,注意:AT指令,控制类都要加回车,数据传输时不加回车1、上电后发送AT指令测试通信及模块功能是否正常ATOK2、通过一下命令配置成9600波特率注:8表示数据位,1表示停止位,后面两个0分别表示校验位和流控位。
2023-09-09 19:48:38
1571
1
原创 数据结构与算法——顺序表,进行数据输入、输出、插入、删除、查找、退出等多种操作
本次进行了顺序表的简单操作,对数据输入、输出、插入、删除、查找、退出等多种操作更加理解。菜单优化命令在运行菜单能够使命令框中代码变的不重复,while循环运行一次清除一次。最后,通过自己把代码敲出来,会让自己有很大的收获。
2023-09-04 22:59:31
4153
2
原创 基于stc51单片机的距离感应风扇
通过这个简单的小项目,可以把所学的PWM原理用在实践中,还用到了分文件处理,可以把各个模块独立起来,主函数代码变少,看的不杂乱无章,在编译出错时也便于改错。在写这个项目时,也遇到一个问题,就是在main函数最后一个else中把jd=1换成直接写停,会出现一直转和刚开始都不会动起来,这是因为会被定时器中断打断,所以在用中断时要仔细。
2023-08-28 22:23:30
188
1
原创 基于stc51单片机的智能垃圾桶
这个项目比较简单,适合我们刚学习的时候进行拿来练手,在学习知识时就不会枯燥乏味,在此项目中,我们可以进行对模块的实践,把几个模块放在了一个整体的代码中,这样能够锻炼我们的代码调试能力。
2023-08-27 16:49:30
405
1
原创 树莓派摄像头的配置:利用mjpg-streamer开源软件
mjpg_streamer的作用是从摄像头采集图像,并把他们已流的形式,通过基于IP的网络传输到浏览器端,如Chrome等等。(1)、安装所要支持的库sudo apt-get install libjpeg8-dev //JPEG支持库sudo apt-get install cmake //下载编译工具(2)、下载mjpg-streamer源码到树莓注: 在主目录路径当中(3)、进入下载目录的路径(4)、 输入指令编译:make allmake all(5)、安装指令。
2023-08-09 22:55:17
366
1
原创 fflush()函数用法
标准输出缓冲区即是用来暂存将要显示的内容的缓冲区。函数说明:fflush()会强迫将缓冲区内的数据写回参数stream指定的文件中,如果参数stream为NULL,fflush()会将所有打开的文件数据更新。fflush()也可用于标准输入(stdin)和标准输出(stdout),用来清空标准输入输出缓冲区。如果圆括号里是已写打开的文件的指针,则将输出缓冲区的内容写入该指针指向的文件,否则清除输出缓冲区。这里的stdout是系统定义的标准输出文件指针,默认情况下指屏幕,那就是把缓冲区的内容写到屏幕上。
2023-07-15 22:38:51
1026
1
空空如也
基于FPGA的udp通信
2025-03-17
c语言中int和char
2022-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人