- 博客(48)
- 收藏
- 关注
原创 STM32F103中断串口通信USART_stm32f103串口中断
实验原理可以参考笔者之前的两篇博客本次串口实验的中断名称为USART1,和之前一样,初始化GPIO,初始化NVIC,初始化串口USART。这里主要介绍一下中断函数中断时,调用此函数,将发送的内容通过串口发送给PC机。这里和上次实验有所不同的是,没有添加清除中断位的操作。在STM32中文参考手册中有所说明串口接收到数据,接收中断标志位为1,但当你读USART_DR寄存器的时候,硬件会自动清除串口接收中断标志,所以我们不需要添加清除中断位地操作。
2024-05-17 09:23:46
414
原创 STM32F103RCT6Mini开发板搭建1
1、东西很简单,有兴趣可以买一个小小的显示屏学习玩一下,花费时间也很少。2、本人也是小白,有哪里说得不对请及时指出来,大家互相学习。
2024-05-17 09:23:12
347
原创 QT 如何在QPushButton上加载gif动图_qt pushbutton加载动画(1)
有些场景,是需要在按钮上播放gif的,比如:点击登录后,登录中的状态需要展示给用户,此时就可以在登录按钮上播放gif和文字,显示登录中的状态。在QT中,比较常见且简单的做法就是:给按钮设置一个layout,然后再在这个layout里面添加QLabel(作为设置QMovie使用),以及用于显示文字的QLabel。
2024-05-17 06:00:36
296
原创 QT 使用第三方库QtXlsx操作Excel表
/ trimmed 去除字符串两侧的空格。xlsx.write(2, 2, QString::fromLocal8Bit(“中文”));
2024-05-17 06:00:02
789
原创 IIC通信协议总结_iic 协议的芯片地址是可配置的嘛(2)
I2C_SCL_L;//最后一定要把这个时钟线拉低,因为只有时钟线拉低的时候才允许数据变化。**//等待从机应答信号,我们只负责主机应答信号的产生,从机应答信号。//配置一下引脚,引脚设置为输出。//延时5微秒,要求大于4.7微秒。一般情况下,[3]是比较常见的,比如MPU6050模块,//这个过程大于4微秒。I2C_SDA_H;I2C_SCL_H;写一个从机地址+0(表示写),//主机不产生应答信号NACK。//主机产生应答信号ACK。//拉低,产生下降沿。
2024-05-17 02:22:45
648
原创 IIC通信协议总结_iic 协议的芯片地址是可配置的嘛(1)
I2C_SCL_L;//最后一定要把这个时钟线拉低,因为只有时钟线拉低的时候才允许数据变化。//配置一下引脚,引脚设置为输出。//延时5微秒,要求大于4.7微秒。一般情况下,[3]是比较常见的,比如MPU6050模块,发送一个字节的MPU6050加速度存储寄存器地址,//这个过程大于4微秒。I2C_SDA_H;I2C_SCL_H;写一个从机地址+0(表示写),//主机不产生应答信号NACK。//主机产生应答信号ACK。//拉低,产生下降沿。
2024-05-17 02:22:10
565
原创 IIC原理超详细讲解---值得一看
/在SCL上升沿时准备好数据,进行传送数据时,拉高拉低SDA,因为传输一个字节,一个SCL脉冲里传输一个位。//总结:在SCL为高电平期间,发送数据,发送8次数据,数据为1,SDA被拉高,数据为0,SDA被拉低。//数据传输过程中,数据传输保持稳定(在SCL高电平期间,SDA一直保持稳定,没有跳变)//读1个字节,ack=1时,发送ACK,ack=0,发送nACK。//1.先拉高SDA,再拉高SCL,空闲状态。
2024-05-17 02:21:36
767
原创 IIC信号为什么要加上拉电阻_iic上拉电阻
上拉电阻过大,IIC总线高电平的驱动能力差,总线电平从0到1变化时,等效为这个RC的充电电路,上拉电阻越大,波形上升沿会变缓,一定程度会影响IIC的时序,可能会出现误码。IIC信号上拉电阻也不能太小,如果太小了,当IIC引脚输出低电平时,灌进芯片IIC 引脚的电流会变大,可能会使IIC信号线的低电平变大,同时IO口电流过大还可能烧坏芯片。当芯片SDA和SCL的引脚输出MOS管关闭,如果没有上拉电阻,IIC信号线是处于一个高阻状态,电平是未知的,开漏输出是没有高电平的输出能力的。IIC上拉电阻的取值。
2024-05-17 02:21:03
1034
原创 C语言中volatile关键字的作用_volatile static一起用
程序的本意是希望ISR_2中断产生时,在main函数中调用dosomething函数,但是,由于编译器判断在main函数里面没有修改过i,因此可能只执行一次对从i到某寄存器的读操作,然后每次if判断都只使用这个寄存器里面的“i副本”,导致dosomething永远也不会被调用。反之如果你不是对此端口反复写操作,而是反复读操作,其结果是一样的,编译器在优化后,也许你的代码对此地址的读操作只做了一次。当变量在因别的线程等而改变了值,该寄存器的值不会相应改变,从而造成应用程序读取的值和实际的变量值不一致。
2024-05-16 21:22:37
877
原创 C语言中volatile关键字的作用_volatile static一起用(1)
程序的本意是希望ISR_2中断产生时,在main函数中调用dosomething函数,但是,由于编译器判断在main函数里面没有修改过i,因此可能只执行一次对从i到某寄存器的读操作,然后每次if判断都只使用这个寄存器里面的“i副本”,导致dosomething永远也不会被调用。反之如果你不是对此端口反复写操作,而是反复读操作,其结果是一样的,编译器在优化后,也许你的代码对此地址的读操作只做了一次。当变量在因别的线程等而改变了值,该寄存器的值不会相应改变,从而造成应用程序读取的值和实际的变量值不一致。
2024-05-16 21:22:03
585
原创 C语言中getopt()函数的用法_c getopt
第三个参数 optstring 是选项字符串,是本文所要讲述的重点。第二个参数argv是字符串指针,和main函数的argv一样;第一个参数argc是参数个数,和main函数的argc一样;getopt函数用来。
2024-05-16 21:21:29
280
原创 C++二维数组sort排序问题_c++ sort 二维数组排序
没想到,两次尝试都以失败告终。分析原因,应该是数组名a和一维数组名a[0]、a[1]均为const类型指针,排序时无法交换它们而导致错误。虽然过程有些麻烦,但是总算得到了预期的结果。测试1:使用c++内置的普通型二维数组。测试2:动态创建二维数组。
2024-05-16 16:21:14
588
原创 C++中的Transform简介_c++ transform
第一个输入区间依旧是__first-__last这一段,第二个输入是__first2开始取(__last-__first)这一段长度的数据,对这两段的数据进行__binary_op操作,然后将结果存入到__result中。__first是第一段区间的开始__last是第二段区间的结束__first2是第二段区间的开始,在第二个区间开始处向后取__last-__first长度的数据__result是存储结果的区间开始__binary_op是对这段数据进行操作的函数,相当于lambda函数。
2024-05-16 16:20:40
296
原创 c++中的Lambda表达式_c++ lambda this
/ OK,捕获所有外部变量和b的引用,并对b做自加运算。// OK,捕获所有外部变量,并对a执行自加运算。// OK,捕获a和b的引用,并对b做自加运算。// OK,捕获所有外部变量,并返回a。
2024-05-16 16:20:04
408
原创 51单片机项目(6)——基于51单片机的电子秤设计
AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP的可反复擦写10000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的ST89C52可为许多嵌入式控制应用系统提供高性价比的解决方案。芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D 转换器提供电源,系统板上无需另外的模拟电源。
2024-05-16 13:19:04
317
原创 51单片机项目(5)——基于51单片机的密码锁设计
总之,51单片机密码锁课题有助于学生综合运用多个学科领域的知识和技能,提高实践能力和创新思维能力。同时,它也培养了学生的项目管理和团队合作能力,并提高对安全意识和信息保护的认识。最重要的是,这个课题为学生提供了一个实践和应用学习的机会,帮助他们将理论知识应用到实际项目中。
2024-05-16 13:18:30
253
原创 51单片机项目(5)——基于51单片机的密码锁设计(2)
1. 实践和应用能力提升:通过设计和开发51单片机密码锁,学生可以锻炼自己的实践能力和应用能力。他们需要理解密码锁的原理和工作方式,并将其应用在具体的项目中,提高问题解决和创新思维能力。2. 综合学科知识的应用:51单片机密码锁涉及相关的电子电路、嵌入式系统和编程知识等多个学科领域。学生在课题中需要综合运用这些知识来设计和实现密码锁,从而加深对这些学科的理解和应用能力。3. 学习项目管理和团队合作:完成51单片机密码锁课题需要进行项目计划、资源管理和团队协作等工作。
2024-05-16 13:17:56
306
原创 51单片机项目(5)——基于51单片机的密码锁设计(1)
6. 提高安全意识:密码锁涉及到安全和保密性的问题。通过设计和研究密码锁,学生可以提高对信息安全和保护隐私的意识,了解密码保护机制的原理和应用。总之,51单片机密码锁课题有助于学生综合运用多个学科领域的知识和技能,提高实践能力和创新思维能力。同时,它也培养了学生的项目管理和团队合作能力,并提高对安全意识和信息保护的认识。最重要的是,这个课题为学生提供了一个实践和应用学习的机会,帮助他们将理论知识应用到实际项目中。
2024-05-16 13:17:21
292
原创 Vue+Element ui中常用表单验证----手机号、座机、传真、邮箱、身份证号、数字和带小数点的数字_vue手机号11位数
3.在data(){}中自定义验证规则与validator的属性对应。二:进入正题【注:只贴出来关键的部分】
2024-05-16 01:47:33
405
原创 vue 移动端H5微信支付和支付宝支付_vue支付宝手机网站支付中途退出处理
4.在调起支付的页面监听从其他页面返回的事件,进行一些刷新业务逻辑的实现即可,至此微信外支付已经完成。5.【微信内支付】微信内支付比起微信外支付稍微复杂一点,但是也不难,(3步骤代码里面已经请求支付方式接口拿到了微信内支付所需要的参数)根据微信内置js对象 WeixinJSBridge,进行开发,至此微信浏览器内支付已经完成。
2024-05-16 01:46:59
414
原创 Vue Router详细教程
说起路由你想起了什么?路由是一个网络工程里面的术语。路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动。— 维基百科额,啥玩意?没听懂。在生活中,我们有没有听说过路由的概念呢?当然了,路由器嘛。路由器是做什么的?你有想过吗?路由器提供了两种机制: 路由和转送。路由是决定数据包从来源到目的地的路径。转送将输入端的数据转移到合适的输出端。路由中有一个非常重要的概念叫路由表。路由表本质上就是一个映射表,决定了数据包的指向。
2024-05-16 01:46:25
1053
原创 vue pc端web页面微信支付和支付宝支付_前端pc扫码实现微信支付和支付宝支付
pc端支持微信支付 [ Native支付官方API] && 支付宝支付 [电脑网站支付官方API订单生成逻辑:前端请求后端提交订单,后端去和微信或者支付宝对接生成订单(后续支付都是这个逻辑进行的对接)
2024-05-16 01:45:48
537
原创 IIC总线 和 SPI总线 的不同_spi与iic总线比较
1、 iic 总线是半双工, 2 根线 SCL SDA。spi 总线实现全双工, 4 根线 SCK CS MOSI MISO;2、 iic 总线是多主机总线,通过 SDA 上的地址信息来锁定从设备。spi 总线只有一个主设备,主设备通过 CS 片选来确定从设备;3、 iic 总线传输速度在 100kbps-4Mbps。spi 总线传输速度更快,可以达到 30MHZ 以上;4、 iic 总线空闲状态下 SDA SCL 都是高电平。
2024-05-15 23:35:46
577
原创 IIC原理超详细讲解---值得一看
I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,SCL和SDA被上拉电阻Rp拉高,使SDA和SCL线都保持高电平。I2C通信方式为半双工,只有一根SDA线,同一时间只可以单向通信,485也为半双工,SPI和uart通信为全双工。主机和从机的概念。
2024-05-15 23:35:13
1402
原创 idea快捷键(目前在国内见过最全的)_idea的ctrl+f7怎么用
Ctrl+B/Ctrl+Click,快速打开光标处的类或方法(跳转到定义处)Ctrl+Alt+T,可以把代码包在一个块内,例如:try/catch。Ctrl+/或Ctrl+Shift+/,注释(//或者/**/)Ctrl+F,查找/Shift+F3,向上查找/F3,向下查找。Ctrl+Alt+Shift+S,打开当前项目/模块属性。Ctrl+Alt+Shift+C,复制引用,必须选择类名。Ctrl+Shift+Alt+N,查找类中的方法或变量。Ctrl+Shift+Up/Down,向上/下移动语句。
2024-05-15 23:34:38
602
原创 I2C操作笔记——以 AT24C04为例
I2C设备有很多种,若掌握基本原理,便可见招拆招,那是I2C总线就不那么难了。既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)如果你需要这些资料,可以戳这里获取加我V获取:vip1024c (备注嵌入式)**
2024-05-15 23:34:03
455
原创 分享一份嵌入式软件工具清单_ide keil uvison iar rt-thread studio deveco studio
大家好,我是ZhengN。
2024-05-15 02:29:38
531
原创 分享一份嵌入式软件工具清单_ide keil uvison iar rt-thread studio deveco studio(1)
MinGW是的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合。其包含gcc工具,可以使用gcc工具来编译我们的C代码。MinGW 提供了一套完整的开源编译工具集(如gcc等工具),以适合 windows 平台应用开发,且不依赖任何第三方C运行时库。
2024-05-15 02:29:00
1043
原创 写代码还是要先看代码——免费资源蓝桥杯单片机组历届省赛国赛题目解答(省一国二)_蓝桥杯单片机历届题目思路解析(1)
蓝桥杯比赛快要开始了,有小伙伴问我要省赛题目的解答,今天整理一下给大家分享,点击下面的文字,就可以查看你想要的内容,资源免费获取!(持续更新中…)1、蓝桥杯比赛 单片机组 第六届省赛题目解答2、蓝桥杯比赛 单片机组 第七届省赛题目解答3、蓝桥杯比赛 单片机组 第八届省赛题目解答4、蓝桥杯比赛 单片机组 第九届省赛题目解答5、蓝桥杯比赛 单片机组 第十届省赛题目解答6、蓝桥杯比赛 单片机组 第十一届省赛题目解答。
2024-05-15 02:28:23
262
原创 内存取证-volatility工具的使用 (史上更全教程,更全命令)_volatility内存取证
Win2016x64_14393 - Windows Server 2016 x64 的配置文件 (10.0.14393.0 / 2016-07-16)Win7SP1x64_23418 - Windows 7 SP1 x64 的配置文件 (6.1.7601.23418 / 2016-04-09)Win10x64_14393 - Windows 10 x64 的配置文件 (10.0.14393.0 / 2016-07-16)
2024-05-15 02:27:43
964
原创 echarts图表——条形图(柱状图)的动态横向显示设置_echarts横向条形图(1)
/ window.onresize = function () { //适应页面。
2024-05-14 16:57:24
862
原创 DS18B20温度传感器的特性、原理、驱动(华大半导体HC32L136、ESP32驱动)
DS18B20的数字温度传感器,可以用来对环境温度进行定量的检测。DS18B20数字温度传感器是美国DALLAS公司生产的一总线数字温度传感器。其测温范围 -55℃~+125℃,固有测温分辨率0.5℃,支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测温,测量结果以9~12位数字量方式串行传送。模组结构如下图所示:独特的1-Wire总线接口仅需要一个管脚来通信。每个设备的内部ROM上都烧写了一个独一无二的64位序列号。多路采集能力使得分布式温度采集应用更加简单。
2024-05-14 16:56:45
1163
原创 DS18B20温度传感器的特性、原理、驱动(华大半导体HC32L136、ESP32驱动)(1)
DS18B20的驱动过程主要依托于1-Wire总线系统,该总线系统可以一个总线主设备控制一个或多个从设备,我们的MCU作为主设备,DS18B20永远为从设备,1-Wire总线系统上所有的命令或者数据的发送送都是遵循低位先发送的原则。为了形成写0时段,在将1-Wire总线拉低后,在整个时段期间主设备必须一直拉低总线(至少60us)。写时段有两种情况:“写1”时段和“写0”时段,主设备通过写1时段来向DS18B20中写入逻辑1以及通过写0时段来向DS18B20中写入逻辑0。这只说明驱动的思路,具体参见。
2024-05-14 16:56:03
825
原创 2024年物联网嵌入式最新嵌入式期末大作业——家用智能晾衣杆,初面蚂蚁金服
在家用智能晾衣杆中,用户可以根据自身的需要,切换手动和自动两个模式。天气对应的接口对应心知天气的天气图,可以下载后:调整尺寸->调整透明度->用画图工具保存为单色位图->提取出点阵信息(如我用的zimoV2.2软件),将点阵信息,存到数组里,根据weather的信息,调用display.drawBitmap()方法就能打印出对应的天气了。该库依赖于,将他们导入后,设置屏幕的主从关系,片选信号和数据,时钟信号等引脚后,就设置好屏幕的驱动。
2024-05-14 13:23:56
697
原创 2024年物联网嵌入式最新嵌入式文件系统详解_嵌入式 文件系统工作原理,2024年最新我阿里P7了解到的物联网嵌入式开发面试的一些小内幕
即文件系统是针对于存储器分区而言的,而非存储芯片。Cramfs文件系统以压缩方式存储,在运行时解压缩,所以不支持应用程序以XIP方式运行,所有的应用程序要求被拷到RAM里去运行,但这并不代表比Ramfs需求的RAM空间要大一点,因为Cramfs是采用分页压缩的方式存放档案,在读取档案时,不会一下子就耗用过多的内存空间,只针对目前实际读取的部分分配内存,尚没有读取的部分不分配内存空间,当我们读取的档案不在内存时,Cramfs文件系统自动计算压缩后的资料所存的位置,再即时解压缩到RAM中。
2024-05-14 13:23:18
993
原创 2024年物联网嵌入式最新嵌入式开发(一):嵌入式开发新手入门(2),技术水平真的很重要
本篇文章整理下嵌入式开发中一些入门的基础技能,都是根据以往的工程经验整理,适用于之前没做过嵌入式开发的新手。嵌入式开发流程一般如下,一般是在PC机的Windows系统下安装Ubuntu虚拟机,搭建嵌入式开发环境及交叉编译环境,开发完成后,编译得到bin文件,然后在Windows下将bin文件通过串口或网络下发到嵌入式板卡,程序在嵌入式板卡上运行。
2024-05-14 13:22:36
952
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人