自定义博客皮肤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)
  • 收藏
  • 关注

原创 警告:文件XXX的修改时间在未来XXX秒后

原来是电脑的系统时间错乱了,变成2021年2月17号,将电脑系统时间改回来之后,编译正常。警告:文件XXX的修改时间在未来XXX秒后。

2023-09-27 15:50:14 261

原创 dbus简介及使用

观察DBus消息:在d-feet窗口的上部面板中,单击“Session Bus”选项卡以打开DBus消息视图。检查DBus对象和接口:在d-feet窗口的左侧面板中,展开“org”文件夹以查看可用的DBus对象和接口。d-feet是一个python编写的可视化DBus接口工具,可以在Linux系统上使用。发送DBus消息:在d-feet窗口的左侧面板中选择一个对象,选择一个方法并双击。uint32:32位无符号整数类型。int32:32位有符号整数类型。### 查询当前生效的连接名。

2023-08-14 21:10:22 419

原创 systemd编写自启动服务文件的常见错误

这个错误一般是工作目录填错了,检查下WorkingDirectory或ExecStart填错了。这个错误一般是所属用户或用户组找不到,检查下User和Group字段是不是填错了。

2023-08-11 17:03:57 542

原创 交叉编译工具链

官网下载压缩包,要注意自己的CPU架构,比如我是在x86_64电脑上编译arm上的目标文件,因此下载gcc-linaro-{version}-x86_64_arm-linux-gnueabihf。CodeSourcery:Codesourcery是一家提供定制编译器的公司,其提供的交叉编译链工具链包括GCC和Binutils,可用于ARM和MIPS等架构的编译。Linaro:Linaro是一家致力于ARM架构开发的公司,其提供的交叉编译工具链包括GCC和Binutils,可用于ARM架构的编译。

2023-08-06 10:53:03 294

原创 开发板配置

CPU:NXP i.MX6ULL,单核,ARM Cortex-A7。核心板存储:4G emmc flash。MAC地址:1C877651E685。核心板内存:256M DDR3。

2023-08-06 10:36:26 46

原创 Ubuntu软件包安装失败:代码 bionic 和 focal的区别

不同版本的Ubuntu的软件源及软件包依赖关系是不同的,Ubuntu就是靠版本信息中的Codename代号来区分的。不光是对 Ubuntu 适用,对deepin、uos等debain系列的操作系统都适用。我在Ubuntu上使用apt安装软件时总是报一些错误,不是版本不对,就是依赖关系不对。尝试了各种方法,突然想到是不是软件源有问题。可见我的Ubuntu版本是20.04,代号是focal。看到上面的bionic代号,我就知道果然是软件源的问题。

2023-07-15 13:55:07 1587

原创 VScode配置Linux内核环境

接着输入远程主机的用户名和ip,如[email protected],接着连接远程主机,会要求输入远程主机的密码,成功后即可访问远程主机,并可访问远程主机上的文件。在linux内核源码目录执行python scripts/clang-tools/gen_compile_commands.py命令,即可生成compile_commands.json,该文件包含了内核编译实际使用了的源文件。如果是远程阅读和开发代码的话,需要安装该插件,该插件的作用是通过ssh协议使vscode能够访问远程服务器。

2023-07-02 16:19:38 839

原创 vs code打开windows子系统Ubuntu(WSL)文件夹

vs code打开windows子系统Ubuntu(WSL)文件夹

2022-11-29 22:11:26 1487 1

原创 低功耗蓝牙(BLE)的工作模式

介绍BLE常见的四种工作模式

2022-11-16 21:41:26 1228

原创 Json介绍,QT解析和生成Json

介绍json组成结构,已经QT中相关数据结构和json文件的解析及生成

2022-11-08 11:07:46 1079

原创 nordic 52832中添加RTT打印

nordic 52832中添加RTT打印

2022-11-03 10:54:27 499

原创 ADS1292检测原理及其驱动

讲解ADS1292R的检测原理及其驱动函数

2022-11-03 10:10:00 2875

原创 Git使用SSH、HTTPS的异同及其原理

详细解说git使用https和ssh的不同与原理

2022-10-26 16:43:55 2374

原创 SPI读写Flash的时序

SPI的读写时序,Nordic52832的spi读写配置

2022-10-20 16:54:16 1239

原创 QT .pro中 PKGCONFIG配置项搜索不到库

编译失败,提示gsettings-qt未安装,但是我明明在Ubuntu下安装了libgsettings-qt-dev开发包,唯一的解释是,qt没有搜索到该库。一顿操作之后,居然是因为Ubuntu下没有安装pkg-config!,执行“sudo apt-get install pkg-config”,问题解决。qmake在遇到PKGCONFIG配置项后,会调用pkg-config去在特定的几个目录下搜索依赖库。既然说到这里,就再讲讲qt creator添加第三方库的几种方式。

2022-10-15 16:32:54 1074

原创 反反编译的手段

理论上来说,没有不能破解的程序,因为程序最终都要部署到目标机器上,在目标机器上运行,当然有的程序反编译后只能得到汇编源码,但有了汇编源码就还原了功能。反反编译的手段,主要是提高反编译的难度和门槛。尤其像C#和java这类语言很容易反编译,因为这类语言编写的程序,都首先会被翻译成一种在.net或java虚拟机平台上运行的“中间语言”IL,只有在程序运行时,运行时编译器(JITter)才将IL代码编译成机器语言。这种IL以dll的形式存在,很容易通过反射、ILDASM和ILASM等方式将代码识别出来。为了保

2021-12-27 14:56:08 862

原创 proteus8.9安装教程

目录软件介绍安装教程破解方法后续软件介绍Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是比较好的仿真单片机及外围器件的工具。受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。proteus8.9支持stm32f4的仿真,下面我们介绍安装教程,文末有下载链接。安装教程1.在安装包中找到proteus8.9.SP2.exe,双击安

2021-11-12 14:48:27 1592

原创 单片机还能这样学:数码管

单片机还能这样学:数码管前言这一章介绍数码管,通过数码管显示字符。数码管简介led数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划和公共电极。led数码管常用段数一般为7段有的另加一个小数点。led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注

2021-11-08 11:23:23 127

原创 单片机还能这样学:直流电机

单片机还能这样学:直流电机前言这一章介绍单片机通过控制L298N从而驱动直流电机。L298N简介L298N是一种高电压、大电流电机驱动芯片,工作电压最高可达46V,输出电流瞬间峰值可达3A,持续工作电流为2A。内部含有两个H桥的全桥式驱动器,可以用来驱动直流电机、步进电机、继电器线圈等感性负载。采用标准逻辑电平信号控制,具有两个使能端,可以外接检测电阻,将变化量反馈给控制电路。下图是L298N对直流电机控制的逻辑真值表。以上5种模式通过模块的BS0~2设置,BS0~2的设置与模块接口模

2021-10-24 18:19:34 630

原创 bool类型在VS中引发的血案

起因今天在vs2010中编写代码的时候,定义了一个函数 bool funcA(void);编译的时候,莫名其妙的报了个错误:error C2061: 语法错误: 标识符“funcA”。funcA明明已经定义了,在头文件中也声明了,但是编译器就认定 funcA无法识别。解决历程刚开始以为函数名起的不规范,重新命名后依然报同样的错,解决失败。接着怀疑是不是头文件重复包含了,理了一遍头文件包含关系,确认没问题。最后想着函数的类型是否有问题,参数类型void这绝对没有问题,函数返回类型b

2020-09-28 14:45:52 3241

转载 本机ip地址、localhost与127.0.0.1的区别

很多人会接触到这个ip地址127.0.0.1。也许你会问127.0.0.1是什么地址?其实127.0.0.1是一个回送地址,指本地机,一般用来测试使用。大家常用来ping 127.0.0.1来看本地ip/tcp正不正常,如能ping通即可正常使用。  对于大多数习惯用localhost的来说,实质上就是指向127.0.0.1这个本地IP地址。在操作系统中有个配置文件将localhost与127.0.0.1绑定在了一起。可以理解为本地主机的意思。localhost与127.0.0.1的区别是什么.

2020-09-20 11:52:20 983

原创 Stm32F103R6之串口

目录概述USART介绍多处理器通信LIN(局域互联网)模式多处理器通信和LIN模式区别概述串口分为通用同步异步收发器(USART)和通用异步收发器(UART)。USART在UART的基础上增加数据同步时钟,异步通讯需要数据收发双方约定波特率,如115200,同步通讯不需要约定,靠同步时钟来同步数据。异步通讯的弊端是数据收发因双发的晶振差异,时钟误差等导致波特率有误差,有可能对通讯造成影响,尤其是高速串口通信。而同步通讯没有波特率的差异,但需要多一个同步时钟信号脚。USART介

2020-09-20 11:09:23 3388

原创 Stm32F103R6之调试支持

目录概述SWJ调试端口(serial wire and JTAG)利用串行接口并释放不用的调试脚作为普通I/O口概述Cortex™-M3内核含硬件调试模块,支持复杂的调试操作。硬件调试模块允许内核在取指(指令断点)或访问数据(数据断点)时停止。内核停止时,内核的内部状态和系统的外部状态都是可以查询的。完成查询后,内核和外设可以被复原,程序将继续执行。当STM32F10x微控制器连接到调试器并开始调试时,调试器将使用内核的硬件调试模块进行调试操作。支持两种调试接口:● 串行接口

2020-09-20 11:02:06 1129

原创 Stm32F103R6之器件签名

目录概述闪存容量寄存器产品唯一身份标识寄存器(96位)概述电子签名存放在闪存存储器模块的系统存储区域,可以通过JTAG/SWD或者CPU读取。它所包含的芯片识别信息在出厂时编写,用户固件或者外部设备可以读取电子签名,用以自动匹配不同配置的STM32F10xxx微控制器。闪存容量寄存器基地址:0x1FFF F7E0只读,它的内容在出厂时编写。图 1闪存容量寄存器产品唯一身份标识寄存器(96位)产品唯一的身份标识非常适合:● 用来作为序列号(例如USB字符序列

2020-09-20 11:00:00 306

原创 Stm32F103R6之以太网

目录概述功能介绍站点管理接口(SMI)独立于介质的接口:MII精简的独立于介质的接口:RMII精确时间协议(IEEE1588 PTP)概述stm32以太网模块支持两种标准接口:1、 连接到外接的物理层(PHY)模块2、 IEEE 802.3协议定义的独立于介质的接口(MII)和简化的独立于介质的接口(RMII)。功能介绍如果要详细介绍以太网,一天一夜也讲不完,这里只能大概讲讲stm32以太网模块的特点。站点管理接口(SMI)站点管理接口(SMI)允许应

2020-09-20 10:55:08 2273

原创 Stm32F103R6之I2C

目录概述I2C功能SMBus概述I2C(芯片间)总线接口连接微控制器和串行I2C总线。它提供多主机功能,控制所有I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,同时与SMBus 2.0兼容。I2C模块有多种用途,包括CRC码的生成和校验、SMBus(系统管理总线—System Management Bus)和PMBus(电源管理总线—Power Management Bus)。图 1I2C功能框图I2C功能网上有评论说stm32的硬件I2C有bug,经

2020-09-20 10:42:26 748

原创 Stm32F103R6之SPI

目录概述I2S功能SPI功能概述SPI接口可以配置为支持SPI协议或者支持I2S音频协议。SPI接口默认工作在SPI方式,可以通过软件把功能从SPI模式切换到I2S模式。串行外设接口(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。此接口可以被配置成主模式,并为外部从设备提供通信时钟(SCK)。I2S也是一种3引脚的同步串行接口通讯协议。它支持四种音频标准,包括飞利浦I2S标准,MSB和LSB对齐标准,以及PCM标准。它在半双工通讯中,可以工作在主和从2种模式下。当它

2020-09-20 10:40:50 912

原创 Stm32F103R6之控制器局域网

目录概述双CANbxCAN工作模式CAN协议特点:ISO11898标准CAN物理特性CAN协议帧概述bxCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持CAN协议2.0A和2.0B。它的设计目标是,以最小的CPU负荷来高效处理大量收到的报文。它也支持报文发送的优先级要求(优先级特性可软件配置)。对于安全紧要的应用,bxCAN提供所有支持时间触发通信模式所需的硬件功能。双CAN● CAN1:是主bxCAN,它负责管理在从bxCAN和512

2020-09-20 10:38:09 624

原创 Stm32F103R6之USB

目录概述USB全速设备接口USB OTG全速(OTG_FS)主机模式功能设备模式功能概述Stm32F103集成了USB全速设备接口(USB)和USB OTG全速(OTG_FS)两个模块。USB全速设备接口只支持做USB设备,OTG_FS是双重角色设备(DRD)控制器,支持主机端和设备端的功能。图 1USB设备框图图 2OTG_FS框图USB全速设备接口标准USB共四根线组成,除VCC/GND外,另外为D+,D-;这两根数据线采用的是差分电压的方式进行数

2020-09-20 10:33:22 1832

原创 Stm32F103R6之SDIO

目录概述主要功能SDIO总线拓扑SDIO适配器命令通道数据通道SDIO AHB接口卡功能描述概述SD/SDIO MMC卡主机模块(SDIO)在AHB外设总线和多媒体卡(MMC)、SD存储卡、SDIO卡和CE-ATA设备间提供了操作接口。MMC、CE-ATA、SD、TF、SDIO的异同请点击链接。主要功能● 与多媒体卡系统规格书版本4.2全兼容。支持三种不同的数据总线模式:1位(默认)、4位和8位。● 与较早的多媒体卡系统规格版本全兼容(向前兼容)。

2020-09-20 10:31:30 1539

原创 MMC、CE-ATA、SD、TF、SDIO的异同

目录MMCSDTFSDIOCE-ATAMMCMMC即多媒体卡(MultiMediaCard),7Pin,MMC协议支持SPI和MMC两种模式。MMC模式总线位宽可达4bit,读写最高时钟频率可达50MHz,而SPI模式总线位宽只有1bit,传输速率较MMC慢,但是对硬件要求相对较低。图 1MMC接口定义SDSD卡即数字安全记忆卡(Secure Digital Memory Card),有9Pin,它的数据传送和物理规范由MMC发展而来,向下兼容多媒体卡(Multi

2020-09-19 13:43:51 2213

原创 Stm32F103R6之FSMC

目录概述功能描述支持的存储器和操作外部设备地址映像NOR和PSRAM地址映像NAND和PC卡地址映像NOR闪存和PSRAM控制器概述灵活的静态存储器控制器(FSMC)能够将片外设备挂在单片机的地址和数据总线上,使单片机可以像访问内存一样访问片外设备。功能描述FSMC模块能够与同步或异步存储器和16位PC存储器卡接口,它的主要作用是:● 将AHB传输信号转换到适当的外部设备协议。● 满足访问外部设备的时序要求。所有的外部存储器共享控制器输出的地址、数据和

2020-09-19 13:42:47 1813

原创 Stm32F103R6之看门狗

目录概述独立看门狗窗口看门狗概述Stm32F103的看门狗分为两种:独立看门狗(IWDG)和窗口看门狗(WWDG)。提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程

2020-09-19 13:41:42 663

原创 Stm32F103R6之实时时钟(RTC)

目录概述主要特性读RTC寄存器配置RTC寄存器概述实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。系统复位后,对后备寄存器和RTC的访问被禁止,这是为了防止对后备区域(BKP)的意外写操作。执行以下操作将使能对后备寄存器和RTC的访问:● 设置寄存

2020-09-19 13:40:17 2026

原创 Stm32F103R6之定时器

目录概述基本定时器通用定时器高级控制定时器概述Stm32F103的定时器有高级控制定时器、通用定时器、基本定时器之分,核心都是一个16位的自动装载计数器。基本定时器基本定时器一般用途就是定时,还可以为DAC提供时钟,主要特性包括:● 16位自动重装载累加计数器● 16位可编程(可实时修改)预分频器,用于对输入的时钟按系数为1~65536之间的任意数值分频● 触发DAC的同步电路● 在更新事件(计数器溢出)时产生中断/DMA请求图 1基本定时器框图通

2020-09-19 13:38:14 2339

原创 Stm32F103R6之DAC

目录概述配置DAC的一般步骤利用DAC生成噪声利用DAC生成三角波双DAC通道转换概述数字/模拟转换模块(DAC)是12位数字输入,电压输出的数字/模拟转换器。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结

2020-09-17 18:47:00 1464

原创 Stm32F103R6之ADC

目录概述通道选择转换模式模拟看门狗校准外部触发转换DMA请求双ADC模式温度传感器概述模拟/数字转换(ADC)可测量多个通道的外部和内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。图 1ADC框图通道选择通常规则通道组中可以安排最多16个通道,而注入通道组可以安排最多4个通道。注入组的转换会打断规.

2020-09-17 18:46:02 2587

原创 Stm32F103R6之DMA

目录概述DMA主要特性配置步骤使用DMA时需要注意的问题概述直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。每个DMA通道专门用来管理来自于一个或多个外设对存储器访问的请求,还有一个仲裁器来协调各个DMA请求的优先权。DMA主要特性支持循环的缓冲器管理 。 每个通道都有3个事件标志(DMA半传输、DMA传输完成和DMA传输出错),这3个事件标志逻辑或

2020-09-17 18:41:26 714

原创 Stm32F103R6之中断和事件

目录概述外部中断/事件控制器(EXTI)概述中断和事件很类似,主要的区别有:中断发生后有一个中断响应函数来处理,需要CPU的介入; 事件发生后没有相应的中断响应函数,不一定需要CPU介入; 事件一般作为其他硬件模块工作的触发源,比如触发ADC转换、DMA传输等等。Stm32F103有:68个可屏蔽中断通道(不包含16个Cortex™-M3的中断线); 16个可编程的优先等级(使用了4位二进制中断优先级)。外部中断/事件控制器(EXTI)每个输入线可以独立地配置输入类型(

2020-09-17 18:39:39 718

原创 stm32F103R6之GPIO和功能复用

目录概述通用I/O(GPIO)复用功能(AF)概述Stm32F103的GPIO端口的每个位可以由软件分别配置成多种模式:输入浮空 输入上拉 输入下拉 模拟输入 开漏输出 推挽式输出 推挽式复用功能 开漏复用功能图 1I/O端口位的基本结构通用I/O(GPIO)复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式。复位后,JTAG引脚被置于输入上拉或下拉模式:l PA15:JTDI置于上拉模式l PA14:JTCK置于下拉模式l

2020-09-17 18:38:28 3229

空空如也

空空如也

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

TA关注的人

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