自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (4)
  • 收藏
  • 关注

原创 STM32驱动开发

概述本文简单介绍STM32标准库下的部分驱动开发流程(F1系列芯片),扩展介绍部分重要的属性。GPIO复用功能将某些功能复用到其他引脚上使用。属性引脚(GPIO_Pin):芯片对应的引脚。速率(GPIO_Speed):输出驱动电路的响应速度,做输入时此功能无效。芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。模式(GPIO_Mode):共8种。  浮空输入(

2022-11-10 15:30:44 1884 1

原创 Keil 全局变量被修改

一、现象  使用 MDK 开发stm32程序的时候出现全局变量被稀里糊涂的修改了。二、原因分析  经过多方分析,最终发现此问题。该全局变量定义的位置在某个数组后面,而该数组在定义的时候并未定义数组大小,导致全局变量的地址和数组中的某个元素的地址冲突(一模一样)。当数组中此元素的值修改时,该全局变量的值就别同时修改了。如下所示:int array[] = {0,1,2...}; /* 未给出数组大小 */int global= 0;三、解决办法(选择一个即可)  1、定义数组的时候给出数组的长

2021-12-09 09:27:27 3587

原创 MDK JLink 配置Serial Printf

一、概述  使用 ST-JLink V2调试器,在MDK的“Debug (printf) Viewer”窗口下输出自定义的调试信息。  二、过程1、MDK配置  选择 Project -> Options for Target -> Debug -> 选择 Use: ST-Link Debugger ; 点击Settings -> Trace -> 选中 Trace Enable ; 设置 Core Clock 和系统时钟频率保持一致(比如STM32标准库中的 SYS

2021-12-09 08:53:42 1078

原创 kivy配置Buildozer

前言:  使用kivy开发一个小项目的时候,需要将代码打包成apk。有三个具体的方式可以实现打包apk的功能,具体详见kivy官方文档。在此仅针对使用Buildozer打包过程中出现的问题进行整理。一、安装Buildozer  kivy官方手册中有说明,不赘述,按照指引操作即可。二、打包apk1、配置文件  在代码所在的文件夹中打开终端,输入如下命令,在此文件夹中会生buyo哪个成一个名为“buildozer.spec”配置文件,目前无需更改其中的参数,后面有需求的修改时候再修改。buildo

2021-04-26 22:44:28 3130 1

原创 VSCode配置C++开发环境

一、官方指引  官方的引导比较简单,下载MinGW的时候,可以不使用在线安装,直接下载文件(浏览器不太行的话可以使用迅雷下载),然后将bin文件夹添加到环境变量中即可。MinGW完整下载地址二、配置json  序言:json的本质就是配置文件,方便开发人员进行项目开发。比如将一条命令放在某个json文件里面,运行的时候编译器直接调用 这个文件,无需手动改输入此命令。又或者将编辑器界面的一些属性放在某个json文件中,配置这些属性就可以设置对应的编辑器界面。使用配置文件和手动设置属性的区别在于使用配置文

2021-04-03 22:59:40 210

原创 Keil 烧录程序后没有执行

  Kell烧录程序成功,但是板子并没有执行。可能是Keil的设置问题。需要进行如下操作。sdf

2021-03-04 22:51:13 12275 2

原创 结构体嵌套

分析如下结构体:typedef struct _Ruler{ int color; int length; int material; }StructRuler;typedef struct _Pencil{ int color; int length; int material;}StructPencil;typedef struct _PencilBox{ StructRuler Ruler1; StructRuler Ruler2; StructPencil *Penc

2021-03-04 22:41:55 4360 1

原创 Linux 修改shell环境变量

规定:“PWD”代表当前shell路径一、临时有效在终端中输入如下命令:(注意英文冒号)export PATH=$PATH:PWD二、针对当前用户有效(永久)1、修改 ~/.bashrcgedit ~/.bashrc2、在 bashrc 的末尾插入export PATH=$PATH:PWD3、保存、重启系统或终端三、对所有用户有效(永久)1、修改 /etc/environmentgedit /etc/environment2、在PATH的内容中插入如下内容:PWD3、

2020-08-18 21:17:48 793

原创 Ubuntu 安装 Chrome

一、下载 deb32位:wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb64位:wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb二、运行安装sudo dpkg -i 刚才下载的deb文件三、应用从所有应用中找到 Chrome 打开即可使用。更多详细的方法请查看大佬的博

2020-08-17 18:59:26 244

原创 OpenGL 生日快乐 3D

前言  由于很正常的原因,写了一个生日快乐,带有3D渲染效果的一个应用程序。下载地址点此下载(Github)程序分析1、OpenGL 大致的一个运行流程是,配置好相关的硬件,然后就在循环里面一直不停的渲染即可。2、比较遗憾的是,整理这篇博客的时候,已经完成这个程序很久了,所以里面的注释很烂,有些地方我也忘记是什么作用了。3、使用的开发工具是 Visual Studio 2019 Community版。4、OpenGL 开发的配置非常麻烦,有的需要下载插件,有的需要自己下载程序源码。所以,如果

2020-08-15 11:42:05 434

原创 Visual Studio 下载扩展工具加速

以 “Codemaid” 为例1、扩展 -> 管理扩展。找到 Codemaid,点击 “详细信息”2、点击 “download” 手动下载该扩展工具3、关闭 Visusal Studio ,手动运行此工具,等待安装完成,重启 Visual Studio 即可。...

2020-08-12 21:19:34 1103

原创 Visual Studio Installer 下载加速

一、使用站长工具查询 “download.visualstudio.microsoft.com” ,寻找国内响应最快的 IP 地址。比如此时响应最快的 IP 地址为 “61.241.123.47” 和 “119.36.60.147”,如下所示。海外的那个下载速度应该更快,但是没有测试过是否有用。二、修改 host 文件1、打开 “C:\Windows\System32\drivers\etc”,找到 “hosts” 这个文件,用记事本打开。2、在最下面一行加上响应最快的那个 IP 地址(上面两个

2020-08-12 20:58:51 2154

原创 VS2019修改项目名称

1、打开需要修改的项目,在“解决方案”和“项目名称”上右键,重命名。2、修改“项目文件夹”的名称。3、以记事本打开 sln 文件,修改“project”的配置属性,将其中对应的名称修改即可。...

2020-06-15 19:21:16 7120

原创 顺序查找算法

简介  顺序查找算法比较简单,在一个线性表中,按照从前往后或者从后往前的顺序依次查找,如果查找到关键字和给定值相等,则返回给定值的位置,查找成功;如果查找值最后一个元素仍未找到,则查找失败。  有一种改进的算法,引入了哨兵的思想,所谓哨兵就是将关键字用一个数组位置去存储,保证在循环的过程中不必判断数组是否越界,因为执行到最后一个元素时,一定会跳出循环。在一定程度上优化了普通查找算法。// 顺序查找#include <stdio.h>int SequentialSearch(int

2020-06-13 18:41:34 4262

原创 KMP模式匹配算法改进

一、简介  上一篇介绍了标准的 KMP 模式匹配算法,但是这种算法在某种情况下存在一定的缺陷,会产生不必要的比较。  改进后的 KMP 模式匹配算法进行匹配时,和标准 KMP 算法的流程一样。仅仅在求取 next 数组的值时,如果子串该位置的字符与 next 数组指向的内容相等,则该位置的 next 数组值修改为所指向位置的 next 数组值。二、案例分析  假设主串为 “aaaaadef”,子串为 “aaaaaf”,规定子串和主串的起始位置下标均为 1,主串的位置下标用 i 表示,子串的位置下标用

2020-06-06 14:42:18 645

原创 KMP算法的分析及实现(C语言)

一、KMP简介 KMP算法是由D.E.Knuth、J.HMorris和V.R.Pratt(其中Knuth和Pratt共同研究,Morris独立研究)发表的一个模式匹配算法,可以避免重复遍历的情况,称为克努特——莫里斯——普拉特算法,简称KMP算法。...

2020-06-05 18:13:46 675

原创 Markdown 段首缩进

1、不是首段的段首,可以输入中文全角状态下的空格。2、直接使用HTML原始码

2020-06-04 16:30:33 159

原创 MySQL Worbench常用快捷方式

1、执行整篇sql脚本:【Ctrl】+【Shift】+【Enter】2、执行当前行:【Ctrl】+【Enter】3、注释/取消注释:【Ctrl】+【/】4、格式化sql语句(美化sql语句):【Ctrl】+【B】5、自动补全:【Ctrl】+【Space】...

2020-04-21 14:40:44 314

原创 Git 分支

一、创建分支git branch branch_name// branch_name : 你需要创建的分支名称二、切换到分支git checkout branch_name// branch_name : 将要切换到的分支名称三、在分支上提交代码(确保正确切换到分支)// 添加代码到缓存git add .// 添加代码备注git commit -m "inf...

2020-03-12 20:50:38 324

原创 Tensorflow 安装开发环境

简单的 Tensorflow 开发环境分为 GPU和CPU两种版本,安装上的不同之处只是最后使用 pip 工具安装的时候命令不同。因为GPU版本的使用GPU进行运算,对图像的处理速度更快,目前只支持NVIDIA的显卡。一、安装CUDA框架和cuDNN库(如果确定不使用GPU,可以跳过此步)参照官方文档安装即可:官方文档关于CUDA和cuDNN的关系:https:/...

2020-02-25 16:54:02 336

原创 error: undefined reference to `__imp__ZN11QSerialPortC1EP7QObject'

Qt出现error: undefined reference to `__imp__ZN11QSerialPortC1EP7QObject'解决方法:在pro文件中加入QT += serialport重新构建即可。

2020-02-17 10:14:38 3098 1

原创 嵌入式设备和Windows操作系统的电脑使用蓝牙连接的一种方案

前言:在学生阶段,开发小型的使用蓝牙通信的嵌入式设备,大多直接使用HC05系列的蓝牙模块。和电脑(Windows操作系统,下述电脑都为Windows操作系统)进行配对连接时,往往只能进行到配对阶段,没有连接阶段,这是因为这种模块在完成配对后就已经和电脑连接好了。连接方案:1、嵌入式端使用HC05蓝牙模块2、使用电脑的蓝牙功能对HC05蓝牙模块进行连接(我只能完成配对),完成配对后如下所示...

2020-02-16 14:05:08 502

原创 ST-Link的SWD接口的接线方式

ST-Link的SWD接口使用四根连接线即可。SWCLK->SWDIO->GND->3.3V ->

2020-02-16 13:18:04 13218 2

原创 Qt中radio button的信号

Qt官网中说的很清楚,当radio button的状态发生变化时,会发出toggled(bool)信号。所以,当需要选择radio button被选中时才发出的信号应选择clicked(bool)信号。Qt中关于radio button的信号有如下几种(详见官网)有一个错误的代码供大家参考。(使用toggled(bool) 和 clicked(bool)分别对槽函数进行连接,运行结果是...

2020-01-19 12:30:33 6074 1

原创 (.text+0x100): undefined reference to `__imp_getaddrinfo'

官方文档:https://docs.microsoft.com/zh-cn/windows/win32/api/ws2tcpip/nf-ws2tcpip-getaddrinfo?redirectedfrom=MSDNWindows Socket编程时,在创建 Socket 时出现问题:Server.cpp:(.text+0x100): undefined reference to `_...

2020-01-08 17:14:31 1810

原创 [Error] aggregate 'CreateSocket()::addrinfo hints' has incomplete type and cannot be defined

使用Winsock时出现错误 [Error] aggregate 'CreateSocket()::addrinfo hints' has incomplete type and cannot be defined加入头文件#include "ws2tcpip.h"重新编译即可。...

2020-01-08 13:24:22 2490

原创 undefind reference to '__imp_wsastartup'

使用Dev_C++编译Socket代码时,出现错误undefind reference to '__imp_wsastartup',如下所示解决方法:选择 Tools -> Compiler Options -> General -> Add the following commands when calling the compiler: 中添加-lwsock...

2020-01-07 18:40:23 786

原创 Vim的使用

首先澄清一下 Vi 和 Vim 的关系。Vim 是 Vi 的升级版,Vi 可以做到的事情,Vim都可以做,反之不一定(Vim 对 Vi 完全兼容)。Vi 有三个模式:插入模式:在此模式下可以输入字符,按ESC回到命令模式。命令模式:可以移动光标,删除字符等。底行模式:可以保存文件、退出Vi、查找等功能。在命令模式下,输入英文格式下的冒号(:)即可进入底行模式。底行模式常用的命令...

2019-08-02 22:21:53 256

原创 Ubuntu 安装中文输入法

请注意命令中不应该的空格可能导致命令不合法!一、检查 fctix 框架 首先,要安装中文输入法,必须要保证系统上有 fctix。fctix 是一个以 GPL 方式发布的输入法框架,安装 fctix 后可以为操作系统的桌面环境提供一个灵活的输入方案,解决在 GNU/Linux 环境下安装中文输入法的问题。 win + a 打开所有应用程序,找到 Language ...

2019-05-03 17:41:27 150783 14

原创 Qt 5.12 串口调试助手

安装 Qt 开发环境静态编译和动态编译 如果你选择在 Windows 上开发 Qt 应用,官方推荐的方式是动态编译的(即下载一个 exe 的安装应用程序,然后一直安装就行了),这种方式最后在发布最后的应用程序的时候会有一大堆的 dll 动态链接库,打包发给需要使用的人的时候不太方便(也可以使用加壳软件,比如 Engima Virtual Box,但是360等 电脑管家会认为加...

2019-03-03 15:38:20 3436

原创 解决 Qt creator 无响应

1、打开Qt creator,工具 -&gt; 选项 -&gt; 构建套件。查看构建工具是否是 MinGW ,若不是,更改为 MinGW。2、如果在构建工具中找不到 MinGW,重新安装QT,安装的过程中需要选择 MinGW组件 和 以 Qt 开头的所有组件。注意:勾选组件的时候会有 MSVC 这种组件,这是当你选择 Visusl Studio 为集成开发环境的时候需要勾选的,是否勾选...

2019-02-25 12:26:45 3692 2

原创 C++ 的输入输出小技巧 <iostream>

一、直接以八进制、十进制、十六进制输出整型数据。        C++中默认以采用十进制输出方式。头文件 &lt;iostream&gt; 提供了控制符 oct、dec、hex,分别用于指示C++以八进制、十进制、十六进制输出。在整出输出数据之前,使用 cout &lt;&lt; 控制符 修改输出格式。此格式修改后,在新的格式修改之前均有效。#include &lt;iostream&g...

2018-12-31 15:46:58 352

原创 C++ 中关于有符号类型(singned)和无符号类型(unsigned)

        1、有符号类型的数据可以存储负数,五符号类型的数据只能存储正数。        2、针对同一种类型,两者可以存储的数据空间大小是一样的,只是数据范围不一样。以 short 类型为例,unsigned short 存储的范围是 0~65535,signed short 存储的范围是 -32768~32767,两种类型的数据可以存储 65536 个数据。          ...

2018-12-31 14:53:18 3352

原创 C++ 的 climits、cfloat 头文件

C++官方文档: http://www.cplusplus.com/reference/climits/                          http://www.cplusplus.com/reference/cfloat/        climits 头文件中定义了在特定的系统和编译器下整型限制的信息,大概意思就是针对某种整型(比如:unsigned int),最大值是...

2018-12-24 17:30:12 2497

原创 C++的 sizeof 关键字

sizeof 是C++中的关键字,即使它的用法和函数非常类似。          通过 sizeof 关键字可以测试程序中某一变量或者类型占用多少个字节。具体的字节数和编译器直接相关。        用法:    sizeof(变量名 or 类型) 例如,在devCpp 中,我的编译器版本如下:程序:#include &lt;iostream&gt;using ...

2018-12-22 21:48:05 327

原创 C++的内联函数

内联函数是一种特殊的函数,具有函数的普通特征(参数检查,返回类型等) 要使用内联函数,必须采取以下措施之一:1、在函数声明前加上关键字 inline2、在函数定义前加上关键字 inline 内联函数的限制:       不能对函数进行取址操作、内联函数不能递归 内联函数和普通函数的区别:        1、内联函数和常规函数的区别不在于编写方式(除了要多使用...

2018-12-18 19:26:11 385

原创 C++ 的命名空间

using namespace std 语句       using namespace std 语句不是必需的,但它是一个重要的规范,开发者可以决定在自己的程序中是否继续使用它。对于许多程序,特别是比较简单的程序,只把 using namespacer std 放在程序开头是很方便的。这使得所有属于 std 名称空间的的名称,包括 cout、cin、endl,在引用时都不需要带上 std::...

2018-11-22 22:32:36 187

原创 C++ Dos窗口一闪而过

直接打开用运行程序时生成的 .exe 应用程序时,Dos窗口会一闪而过。       1、在主函数后面加 system("PAUSE");       采用这种方式必须要在 Windows/Dos环境中编译,与编译平台有关。         2、在主函数后面加 cin.ignore();       这种方式与编译环境无关。使用哪种方式请自己选择。...

2018-11-22 21:07:23 924

原创 C++ 中的 “引用”

引用        引用是充当另一个变量的别名的变量。引用类型最常用于函数的参数。在函数参数中使用引用变量可以使得函数对传递给他的变量作出永久性改变。同样也可以使用在其它地方,但是实用性不强。        在声明 中使用 "&amp;" 来表示一个引用。 引用参数        一般情况下,参数按值传递到函数中进行使用。这时,函数获得的是参数的副本,所以对形参的修改不会影响到...

2018-11-22 20:54:39 264

原创 解决Visual Studio 2017 运行程序闪退

        在解决方案资源管理器中找到工程,在工程上右键---&gt;属性---&gt;配置属性---&gt;l链接器---&gt;系统---&gt;子系统(在窗口右边)---&gt;下拉框选择控制台(/SUBSYSTEM:CONSOLE)。 ...

2018-10-03 21:02:37 6161

sp481e_sp485e.pdf

sp481e、sp485e 英文原版官方手册。

2021-10-29

AT24C256C-I2C-Compatible-Serial-EEPROM-256-Kbit-20006042A.pdf

AT24C256C 英文官方手册。

2021-10-29

Android蓝牙应用程序

基于Android的蓝牙应用程序。在嵌入式设备拥有完整的蓝牙设备及蓝牙驱动程序的情况下,可以通过此应用程序和嵌入式设备通信。

2018-09-23

基于51单片机的GY-26驱动程序

这是一个基于51单片机的GY-26驱动程序,需要LCD2602液晶显示屏配合使用。这是大一的时候写的代码,可能有的格式和备注不是很清晰,望大家见谅。如果不想使用积分下载的可以留言邮箱地址,看到留言后我会发给你。

2018-09-23

空空如也

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

TA关注的人

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