自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 NB-IOT模块(M5311)通过MQTT协议对接华为云IOT平台

说明:最近做项目要用到M5311模块对接华为云,遇到了不少坑。最会成功了。关于这个网上资料很少,我几乎没找到很有用的资料。做的过程中就想着等做出来了写篇教程。本文目的:1、让大家避坑,节省时间。2、分享技术。 刚开始要着手解决这个问题的时候很懵。首先买了M5311模块(NB-IOT模块的一种),拿到模块相关资料之后,感觉好像没有针对我的应用的资料。然后资料中各种内容一大堆,表示看不太懂。。。后来,就有了这篇文章。技术关键词:NBIOT、M5311、MQTT协议、华为云、JSON数据格式...

2020-05-14 17:35:31 7435 5

原创 QT Android QTextEdit 复制粘贴文本后出现多余数据问题

QT Android QTextEdit 长按选中文本后,点击复制,然后粘贴到手机便签或者QQ中,出现多余数据

2023-05-08 19:48:09 1337

原创 C++ 类对象作为函数的返回值,但却没有调用该类的拷贝构造函数

这段代码编译后输出我一开始考虑到的也是编译器优化问题,于是加上了-O0选项不开启优化。但是结果还是不会调用拷贝构造!怀疑人生。。。

2023-03-23 20:31:42 1340

原创 QT QTcpSocket导致内存泄露(暴涨)问题

写大量数据后,WIN10任务管理器显示占用的内存暴涨。

2022-11-08 20:34:36 2304 3

原创 QT connect函数ConnectionType参数的使用

默认是AutoConnection ,即自动根据发送者和接收者,所属线程决定调用的方式。若发送者跟接收者属于同一线程,则以DirectConnection方式调用,若二者不属于同一线程,则以QueuedConnection方式调用。QueuedConnection:不立即在发送者当前线程中调用槽函数,而是当控制返回到接收者属于的线程的事件循环时再调用槽函数。2、若槽函数为lamda表达式,则默认直接以DirectConnection方式调用。DirectConnection:信号所在线程直接调用槽函数。

2022-11-08 20:24:52 1325

原创 智能家居照明系统设计

目录简介设计方案简介本设计通过多点无线通信、WIFI模块、云平台、以及人体传感器、光敏传感器等信息技术手段,实现家居照明系统的智能控制,如远程实时开关灯,远程实时查看家中各个灯的状态,定时开关灯,天黑自动亮灯,有人自动亮灯,一键全开,一键全关等功能。并且开发PC客户端,方便用户操作。关键词:MQTT协议;多点无线通信;WIFI模块;云平台;HTTP协议设计方案本系统以STM32单片机为主控MCU,通过2.4GHZ无线通信模块(NRF24L01P)与STM32控制的每个节点进行数据传输。节点收到主

2021-07-03 16:27:01 2518

原创 VHDL设计时钟,产生时分秒信号并用数码管显示

本文主要介绍如何用VHDL设计一个时钟(可以产生时分秒的信号),然后用数码管显示出时分秒。设计思路:设计两个模块,一个模块负责产生时分秒的信号,另一个模块负责驱动数码管显示出时分秒的时间。然后在顶层模块中把两个模块的输入输出进行例化。(本文只给出底层模块的VHDL程序,顶层模块进行例化就可以了)

2021-01-26 18:14:51 6739 1

原创 ESP8266无法连接电脑网络调试助手

我用ESP8266连接手机的热点,然后通过手机网络调试助手测试TCP通信是正常的。但是用电脑上的网调试助手TCP却连接不上。然后看到这篇帖子,解决了。参考此帖(该贴中有一条评论是解决方案)主要原因就是1、windows的防火墙会影响TCP连接的建立,所以需要暂时关掉windows防火墙。2、电脑网络调试助手如果是TCP Server的话,需要设置本地IP地址为WLAN IP地址或者无线局域网适配器IP地址。(我试了以下两个都可以连接)如果电脑网络调试助手做TCP client的话我没试过,.

2020-12-18 21:22:54 7088 1

原创 MPU6050读取数据FIFO溢出问题

我用MPU6050的DMP库有问题,正点原子的程序也试过了。总是读取的数据隔几次之后就会出现FIFO溢出错误,读的频率快了之后就会出现FIFO数据和要读取的数据长度不匹配(应该是读取的太快了,转换的数据还没来得及放到FIFO里)错误。我怀疑是MPU6050硬件可能有点问题(或者是我的MPU6050模块有问题)或者是配置的参数有问题。正点原子的MPU6050的程序表面上看没有问题。但是你如果判断一下获取数据函数的返回值,就会发现隔几次之后就会出现FIFO溢出错误。这样的话用自带DMP来做四轴的飞控肯定实时性

2020-12-01 19:59:11 3789 2

原创 STM32 ADC DMA时EOC转换完成中断异常

问题:用ADC1连续采集几个通道上的电压值,配置为规则组,没有开启ADC1的DMA的时候EOC中断是正常的。但是开启ADC1的DMA传输之后EOC中断的频率明显变慢了。开始以为是STM32F1的DMA和CM3内核共享系统数据总线,然后DMA的开启导致CM3响应ADC中断的速度变慢。但是,后来发现原因是开启DMA会读取ADC的DR寄存器,而ADC的DR寄存器的读操作会清除EOC(转换完成)标志位,所以ADC的中断服务函数中判断不到EOC标志位。(清除了EOC标志位,但ADC的中断服务函数还是可以正常进入的。

2020-10-30 20:16:47 4913 3

原创 C语言输出unsigned int 类型数据出错,常量赋值给unsigned int 类型变量赋值错误

我在用unsigned int类型的最大值4294967295赋值给一个unsigned int类型变量后发现输出的结果是错误的。很纳闷,怎么可能会出错呢。(如下图)后来,发现是printf函数打印的时候出了错。"%d"默认应该是输出有符号整型,但是有一个输出值的范围(最大值是正的2147483647)。我要输出的4294967295显然超出了这个范围,所以导致输出错误。解决方法:1、把“%d”改成“%u”(无符号整型)2、把“%d”改成“%lld”(有符号长长整型)3、把“%d”改成“%l

2020-10-30 12:59:53 3402

原创 关于STM32的系统时钟、PLL倍频系数、AHB预分频器、APB预分频器的值在什么时候,在哪里设置的

很多人平时用STM32的时候一般都不会考虑STM32的内部各种时钟(HCLK、PCLK1、PCLK2等)问题。只知道一个系统时钟频率。但是当你看到STM32的时钟树的时候有没有发现STM32内部的各个时钟都是由分频器或者PLL锁相环来确定的。STM32时钟树图(如下图)那么问题就来了,这些分频器和锁相环的参数以及系统时钟源的选择是从哪里设置的呢?是什么时候设置的?答案:在system_stm32f10x.c文件和启动文件中。(这里以STM32f103为例)STM32启动文件中会调用SystemIni

2020-10-29 19:59:46 9755 6

原创 NRF24L01+模块实现双向通信(带ACK payload)

本文主要关于NRF24L01+ 2.4GHz无线模块的应用。说明:1、NRF24L01+和NRF24L01的区别,前者支持Enhanced ShockBurst™,后者不支持Enhanced ShockBurst™。也就是前者支持双向通信,后者不支持双向通信。(当然你如果通过程序手动控制的话,应该也可以实现双向通信,不过应该比较麻烦) 所以,要确定你买的模块是NRF24L01+(注意要带“+”),否则不支持双向通信。有些商家可能是真的不懂,也可能是故意的,标的是NRF24L01+,但实际上是NRF24L

2020-10-26 18:39:52 5295 5

原创 Quartus,Modelsim仿真报错:Error: Error loading design # Pausing macro execution

用Quartus和Modelsim联合仿真报错,如下图:原因应该是quartus中设置test bench的时候有问题,我是因为test bench的名字设置的与.vht文件的顶层实体名字不匹配导致的这个问题。在quatus中修改一下test bench的名字就可以了。如下图,“Top level module in test bench”即顶层实体的名字,也就是.vht文件中的第一个实体的名字(如下图):修改一致即可。...

2020-09-02 18:57:35 15651 5

原创 C++,Python中基类(父类)与派生类(子类)会共享基类的静态成员变量(类属性)

开始这个问题,我在Python中发现的。先说一下python中的吧。Python:class A: count = 0 def __init__(self): A.count += 1class B(A): def __init__(self): A.__init__(self)obj1 = A()obj2 = A()print('A.count:', A.count,' B.count:', B.count)obj3 = B

2020-08-17 18:54:33 2206

原创 Python3的类与对象,通过对象名修改类属性的问题

类属性是所有类的成员共有的属性,可以通过类名或者对象名来访问。但是,如果用对象名来修改类属性的值,会出现问题:这样做实际的效果是为这个对象重新创建了一个新属性并赋值,而不是修改类的属性。如下图(借用牟琦老师在中国大学慕课上开课的PPT)图中“zhangsan.money=5000”的操作实际上是为张三新创建了一个“money‘属性,而不是修改Person类的属性。所以在修改类属性的时候应该直接用类名进行修改,读取的时候可以用对象名进行读取(前提是你没有为该对象新增与类属性名相同的属性)

2020-08-16 17:27:11 1887

原创 Python的wxpy库怎么样?(微信网页版无法登录)

首先抛开wxpy库怎么样不说,你首先得能登录微信网页版才行。因为wxpy库就是调用的微信网页版的API。所以如果你的微信网页版登录不了,wxpy库也就用不了。

2020-08-16 13:53:44 2415

原创 Python, Pycharm环境中设置了保护线程(xxx.setDaemon(True)),但是执行结果不对

Pycharm中设置了保护线程线程,但是执行结果和没有设置 xxx.setDaemon(True)的结果一样。后来在终端里执行的结果是正确的。同样的程序,只能说Pycharm有点小毒吧。Pycharm中遇到百思不得解的问题建议到终端里执行一下试试。...

2020-08-15 20:41:31 1278 2

原创 Python 生成一个一维列表,列表元素个数随机,元素的取值也随机,并且不能有重复的元素。

生成一个一维列表,列表元素个数随机,元素的取值也随机,并且不能有重复的元素。注意:如果元素的取值范围设定的很小,即使元素个数的取值范围再大,也只会得到很少(元素个数<=取值范围max-取值范围min +1)的元素个数。# 生成一个一维列表,列表元素个数随机,元素的取值也随机,并且不能有重复的元素。import randomdef r_list_generate(num_range, value_range): list1 = [] for i2 in rang..

2020-08-15 20:34:09 1476

原创 PYTHON3 AttributeError: module ‘serial‘ has no attribute ‘Serial‘

想弄一个串口有关的Python程序。import serialprint(serial.Serial())执行上述代码的时候报错(如题)多方找寻答案未果,后来发现,因为我安装了两个库一个“serial”,另一个“pyserial”。第一个库因该不是针对串口的。应该用第二个“pyserial”。所以需要卸载“serial”pip uninstall serial然而,现在重新运行程序依然报错。所以接下来需要,卸载“pyserial”库然后重装pip uninstall pyserial

2020-08-15 08:03:00 5136 1

原创 WIN10 环境下 Tensorflow 检测不到GPU (GTX1050笔记本版可以安装CUDA)

#原因##的###情况

2020-08-13 20:43:08 8247 7

原创 KEIL5中C语言编程时可以在可执行语句之后定义变量

以前看过有的程序在可执行变量之后定义,当时就挺纳闷,C语言不是只能在函数的可执行语句之前定义变量吗。后来偶然发现KEIL5中设置一下编译器就可以在可执行语句之后定义变量了。勾选下图的“C99 Mode"选项即可...

2020-07-30 21:12:07 1476

原创 VS code :undefined reference to `__imp_PlaySoundW‘ 等类似问题

我在vs code中调用windows.h的API播放音乐的时候出现了问题。(但是同样的C++程序在VC6.0的环境下时正常的)。错误如下:解决办法:在task.json中加入“-lwinmm”即可解决另外,我在发送邮件的时候也出现了类似的错误:解决办法和上边类似:参考文章:https://www.jianshu.com/p/3927cad8d2cdhttps://ask.csdn.net/questions/1087885...

2020-07-07 15:44:25 2166 1

原创 华为LiteOS系统移植到STM32F103开发板(基于MDK环境)

前段时间移植的LiteOS系统,移植成功了。(基于MDK环境)官方移植教程:https://liteos.github.io/porting/stm32-keil.html

2020-06-08 14:01:17 1732 1

原创 STM32的同一中断的次数不会累计

今天想到了一个问题:假如STM32的某个中断被掩蔽(通过BASEPRI寄存器),被掩蔽期间如果该中断两次(或多次)触发,等解除掩蔽之后该中断的ISR(中断服务程序)会执行几次呢?会不会累计?然后我用定时器中断测试了一下,结果显示该定时器中断的ISR并不会多次执行,只执行了一次。原因:某个中断被掩蔽期间如果触发了该中断那么这个中断会被悬起(通过SETPEND寄存器自动悬起),但是只是标记了悬起的状态,并不会记录悬起的次数。以上结论是在Cortex-M3上测试得出的。(个人观点如有错误、不当之处欢迎指正

2020-06-06 19:52:39 716

原创 FreeRTOS,程序进入 HardFault_Handler循环

我用STM32搭载FreeRTOS操作系统实现一些功能。程序调试过程中进入了HardFault_Handler循环。后来发现这是一个很低级的错误。就是任务的堆栈定义的太小了,不够用。但是之前的时候没有问题,是因为我后来在这个任务中添加了很多代码,导致堆栈空间不够用了。解决办法自然就是把这个任务的堆栈改大一点。由于很长时间不用FreeRTOS了,有些东西忘了,导致了这么低级的错误。...

2020-06-05 19:12:55 4307 1

原创 C语言头文件中定义变量容易导致出错:变量重复定义

今天调程序编译器报错说:变量重复定义。但是我仔细检查过了,确实没有重复定义。最后发现是因为一号.h文件中定义了变量,但是同时在二号.h文件中包含了一号.h文件,“巧合的是”二号.h文件又被其他.c文件包含了。所以这就导致多次定义了一号.h文件中定义的变量。其实有很多地方也讲了不建议把变量定义在头文件中,而应该定义在源文件中,然后在对应的头文件中用extern声明。当然如果你在头文件中定义了变量,请做到以下几点:1、确保该头文件在整个工程中只被包含一次。2、不要在另一个头文件中包含该头文件,因为另一个头

2020-06-05 00:49:10 4775 6

原创 电脑自带浏览器(IE和Microsoft Edge)打不开网页,但是火狐浏览器可以

突然发现windows10自带浏览器打不开网页了,但是火狐浏览器能正常打开。但只之前一直都正常。后来在联想智能客服哪里找到了答案,“检查IE的代理设置,一般家庭上网要取消代理和脚本”。然后把下图红圈中的“使用设置脚本”的开关关闭,就可以了。操作完之后IE浏览器和Microsoft Edge都能正常上网了。...

2020-05-23 13:18:25 4792 1

原创 计算器计算反三角函数或三角函数的时候结果不对

今天在朋友圈看到一个同学说:计算器都有假的,最近是怎么回事,假东西,骗子都找上门?配图:表面上看学生用计算器的结果确实不对,但是计算器一般是不会出错的。。。。。事实上计算器也没有出错,只是这里显示的结果是百分度制(一百分度=0.9度),只要把模式切换成角度制或者弧度制就好了。或者把百分度的值乘以0.9就转换成角度制了。另外说点别的:windows自带的计算器看似没有计算反三角函数的功能但是当你点击红圈中的箭头之后,它就会出现了。...

2020-05-22 13:18:06 5353 1

原创 使用NB卡的NBIOT模块不能发短信

我用的M5311模块的软件手册里有一个发短信的功能,但是试了很多遍根本发不出去。然后咨询了一下中移物联网的客服,他说“国家已经禁止NB物联网卡发短信了,您办理NB物联网卡时是选不了这个服务的”。至于为什么禁止他说“物联网终端大量都是无人值守,sim卡被盗比较容易,被盗的sim卡利用短信功能发送危害国家、犯罪等言论,国家无法控制和追踪。发生过几起大的危害事件后,2018年开始,国家已命令禁止物联网卡开通短信功能。技术上都是支持的,政策上不允许”。所以说NB卡发不了短信。。。...

2020-05-15 14:06:41 2000 1

原创 C++ new和delete的坑

用new 创建对象之后,再用delete 只是释放了分配的空间,并不会清空指针(指针仍然保持原来的值),需要自己清空。若不清空再次用此指针调用之前对象的成员函数会导致程序出错、卡死。

2020-05-14 17:58:51 435 2

原创 C++实验,学生成绩管理系统设计

说明:刚学完C++,这个是老师布置的实验。一、实验目的1、掌握类的定义和使用;掌握对象的声明和使用。2、掌握类的静态成员的使用。3、综合应用继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。二、实验设备和环境奔腾以上计算机,装有Visual C++ 6.0编程环境。三、要求1、问题描述学生信息包括:学号、姓名、性别、年龄、班级等信息。小学生除了包括学生所有信息外,还包括英语、数学和语文成绩。大学生除了包括学生所有信息外,还包括专业、英语、程序设计和高等数

2020-05-14 15:55:11 3779 1

原创 仿真报错:Quartus_FPGA/Waveform.vwf specified with --testbench_vector_input_file option does not exist

使用Quartus仿真的时候报错:解决办法很简单:再点击Run Functional Simulation时会弹出窗口让你保存.vwf仿真文件。在保存.vwf仿真文件的时候用默认的路径(不要自己修改)就不会报错了。...

2020-04-09 15:50:16 9147 2

原创 优酷电脑客户端占内存很大,清理内存

最近发现电脑硬盘容量有点不够了,于是就打算清理一下。发现优酷视频的文件夹占用内存很大,,,居然到了17.6G,,,不知道是不是我大惊小怪了该文件夹目录(D:\软件\updated\优酷\Youku Files\youkudisk)打开之后里边会有一个叫“目录说明”的文件。打开这个说明文件后:上边写着默认为10G,,,我这都17.6G了。太坑了,,,不说了把这个删了,,,删完瞬间多出1...

2020-04-04 16:45:02 7178

原创 Visual C++中报错: LINK : fatal error LNK1168: cannot open Debug/Home2.exe for writing 执行 link.exe 时出错.

在使用Visual C++ 6.0的过程中点击编译(build)之后弹出如下错误刚开始学C语言的时候也出过类似的错误,但是没有太在意(因为不经常用这个软件)。后来偶然发现这个报错是因为之前运行程序之后没有关闭debug窗口(就是点击执行之后弹出的黑色窗口)造成的。所以把debug窗口关闭之后再点击编译就不会报错了。(希望对新手会有所帮助)...

2020-03-25 20:34:39 1262 1

原创 VS Code,launch:program ‘路径....exe‘dose not exsit,undefined reference to `std::cout‘

最近打算用visual studio code 写C++(感觉这个软件挺酷的),但是在安装配置开发环境的过程中遇到了一系列的问题,难怪网上很多建议说不建议编程小白用VS code。。。复制了一段很基础的C++程序之后发现除了问题,但是同样的程序在VC6.0上运行是没有问题的。 问题如下图:点击“Debug Anyway”后弹出如下警告网上找了很多帖子,众说纷纭,,,试过了都不好...

2020-03-11 23:47:15 3412 6

LiteOS移植示例程序STM32F103.rar

华为LiteOS操作系统,移植到STM32F103的示例程序(基于MDK环境)。liteOS的移植测试成功了。

2020-06-08

空空如也

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

TA关注的人

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