自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 [nodejs开发] typescript引入js模块或文件

【代码】[nodejs开发] typescript引入js模块或文件。

2023-03-10 17:02:24 2721

转载 在nodejs中使用Typescript

typescript寻找我们编写代码的地方,现在配置为src目录,现在需要在项目录中创建一个。安装typescript,现在我们可以通过命令行来使用。4.使用命令创建一个tsconfig.json文件。现在可以使用typescript编写代码了。2.开启Typescript依赖。去除了无用的注释它的内容像这样的。7.创建支持清理和编译的生成版本。它将监听你的代码自动进行惹更新。,就可以自动监听文件更改了。3.安装nodejs类型。,在项目目录中会自动创建。8. 创建生产启动脚本。1.首先新建一个项目。

2023-03-10 16:34:27 1907

原创 C++标准库之:IO库

C++语言不直接处理输入输出,而是通过一族定义在标准库中的类型来处理IO。这些类型支持从设备读取数据、向设备写入数据的IO操作,设备可以是文件、控制台窗口等。还有一些类型允许内存IO,即,从string读取数据,向string写入数据。

2022-12-02 15:34:07 802

原创 串行通信原理

参与通信的双方需事先约定波特率(传输速度),发送方和接收方按照事先约定好的波特率发送和接收数据。允许数据同时进行双向传输,发送和接收的双方都具有独立的发送和接收能力。允许数据双向传输,单同一时刻只允许数据在一个方向传输。只支持从发送方到接收方的单行传输,不支持反向传输.具有时钟同步信号的传输,具有两条线:数据线和时钟线。相当于即可用于接收也可用于发送的单工传输。如:UART通信,单总线(18B20)数据的每一位是按照时钟信号进行传输的。如 : IIC通信, SPI通信。不具有时钟同步信号的传输。

2022-09-27 15:24:08 354

原创 Cortex-M3 NVIC与中断控制

NVIC,可嵌套的向量中断控制器。是Cortex-M3不可分割的一部分,它与CM3内核的逻辑紧密耦合。NVIC与CM3内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。NVIC的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断处理的控制逻辑之外,NVIC还包含了MPU的控制寄存器、SysTick定时器以及调式控制。NVIC共支持1至240个外部中断输入(通常外部中断写作IRQs,这里的“外部”是指CM3内核外部)。此外NVIC还支持一个永垂不朽的不可屏蔽中断(NMI)输入。

2022-09-27 14:17:02 1107

原创 Cortex-M3异常

优先级的数值越小,则优先级越高。CM3支持中断嵌套,使得高优先级异常会抢占低优先级异常。有3个系统异常:复位、NMI、硬fault,他们有固定的优先级,并且他们的优先级是负数,从而高于所有其他异常。所有其他异常的优先级都是可编程的(但不能编程为负数)。CM3支持多达256级的可编程优先级,并且支持128级抢占。但是绝大多数CM3芯片都会精简涉及,以致实际上支持的优先级会更少,如8级、16级、32级。它们在设计时会裁掉表达优先级的几个低端有效位。(优先级号是以MSB对齐的)。

2022-09-27 13:29:00 817

原创 Cortex-M3存储器映射

里面包括了系统级组件,内部私有外设总线,外部私有外设总线,以及由芯片制造商定义的系统外设。

2022-09-26 15:26:15 871

原创 Cortex-M3的时钟

⑤、送给APB2分频器。APB2分频器可选择1、2、4、8、16分频, 其输出一路供APB2外设使用(PCLK2,最大频率72MHz),另一路送给定时器(Timer)1倍频器使用。系统时钟可由PLL、HSI或者HSE提供输出,并且它通过AHB分频器分频后送给各模块使用,AHB分频器可选择1、2、4、8、16、64、128、256、512分频。APB1分频器可选择1、2、4、8、16分频,其输出一路供APB1外设使用(PCLK1,最大频率36MHz),另一路送给定时器(Timer)2、3、4倍频器使用。

2022-09-25 20:57:57 874

转载 STM32:HEX文件格式

hex文件格式是可以烧写到单片机中,被单片机执行的一种文件格式。生成Hex文件的方式有很多种,可以通过不同的编译器将C程序或者汇编程序编译生成hex,如IAR,KEIL等。

2022-09-25 11:29:27 683

原创 stm32按键扫描代码

【代码】stm32按键扫描代码。

2022-09-24 12:15:59 460

转载 【单片机】按键消抖及原理(硬件和软件方法详解)

此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),只要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。原理:按键采用中断驱动方式,当按键按下以后触发按键中断,在按键中断中开启一个定时器,定时周期为 10ms,当定时时间到了以后就会触发定时器中断,最后在定时器中断处理函数中读取按键的值,如果按键值还是按下状态那就表示这是一次有效的按键。注:如果按键是用中断方式实现的,那就更不能在中断服务函数里面使用延时函数,因为中断服务函数最基本的要求就是快进快出!

2022-09-23 21:06:15 9730

原创 Cortex-M3概览

Cortex‐M3 是一个 32 位处理器内核。内部的数据路径是 32 位的,寄存器是 32 位的,存储器接口也是 32 位的。CM3 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统)

2022-09-16 15:29:44 846

原创 了解ARM架构

然而对于安全关键(safety‐critical)的嵌入式系统,还是不能没有内存的分区保护的。为解决矛盾,于是就有了MPU。可以把MPU认为是MMU的功能子集,它只支持分区保护,不支持具有“定位决定性”的虚拟内存机制。实际上,Thumb指令集在功能上是ARM指令集的一个子集,但它能带来更高的代码密度,给目标代码减肥。Thumb‐2 是16位Thumb指令集的一个超集,在Thumb‐2中,16位指令首次与32位指令并存,结果在Thumb状态下可以做的事情一下子丰富了许多,同样工作需要的指令周期数也明显下降。

2022-09-16 14:50:51 177

原创 嵌入式学习笔记总纲

嵌入式学习笔记总纲

2022-09-16 14:31:07 109

原创 互斥锁、递归锁、读写锁、自旋锁、条件锁;及pthread实现

共享资源的使用是互斥的,即一个线程获得资源的使用权后就会将改资源加锁,使用完后会将其解锁,所以在使用过程中有其它线程想要获取该资源的锁,那么它就会被阻塞陷入睡眠状态,直到该资源被解锁才会别唤醒,如果被阻塞的资源不止一个,那么它们都会被唤醒,但是获得资源使用权的是第一个被唤醒的线程,其它线程又陷入沉睡。............

2022-07-22 10:58:53 655

原创 C11原子操作

在C11标准中,首次引入原子操作。头文件:标准定义了宏,用来在编译时检测是否支持。同时还有一系列宏和函数用来判断各种数据类型在当前的实现中是否支持原子操作,例如:,。同时,标准定义了许多原子数据类型,例如:,。初始化原子变量可以使用如下函数,但不保证原子性(当然一般也不会在多线程中进行初始化)。操作原子变量则使用如下函数,保证原子性:在C11之前,gcc对原子操作的支持是通过builtin函数实现的,即前缀的函数。在C11发布之后,gcc通过提供标准接口。gcc在版本之后才正式、完备的支持stdatomic

2022-07-20 16:21:23 916

转载 c语言 + 汇编 实现原子操作

代码】c语言+汇编实现原子操作。

2022-07-20 14:47:18 379

转载 C语言volatile关键字,

return0;}return0;;}这个时候,delay函数就起不了效果了,需要使用volatile修饰val;编译器优化对自定义延时程序的影响(volatile详解实验一)

2022-07-20 13:22:22 329

原创 [C++编程笔记] 02 C++字符串总结

联系作者:359152155@qq.com C++标准库提供了诸多字符串类型,它们都是通过模板 特例化而来的。如下:由于这些类都有相同的接口形式,因此下面只以为例进行介绍,其他类型大同小异。2. string初始化string s1;默认初始化,初始化为空串string s2{};string s2{‘a’, ‘b’, ‘c’, …};使用初始化列表初始化s2string s3(n, ‘c’);s3初始化为连续n个字符’c’组成的串string s4(st

2022-07-14 00:22:32 481

原创 [C++编程笔记] 01 变量和数据类型

联系作者:359152155@qq.com 带符号和无符号关于符号的注意事项:整型字面量的类型默认情况下,十进制字面量是带符号数,类型是能容纳其数值的int、long、long long中最小者。八进制和十六进制字面量的类型是能容纳其数值的int、unsigned int、long、unsigned long、long long、unsigned long long中的最小者。整型字面量后缀浮点型字面量后缀字符型字面量前缀引用为对象起了一个别名。例:定义引用时,必须初始化,使引用与其初始值绑定到一起。一

2022-07-12 21:40:37 299

原创 HTTP首部字段大全

MDN Web Docs:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers通过指定通用首部字段Cache-Control的指令,就能操作缓存的工作机制。在介绍之前,先啰嗦两个容易忽视的地方:符合缓存策略时,服务器不会发送新的资源,但不是说客户端和服务器就没有会话了,客户端还是会发请求到服务器的。Cache-Control除了在响应中使用,在请求中也可以使用。指令参数是可选的,多个参数之间使用“,”进行分隔。请求指令一览表响应指定一览表no-s

2022-07-12 10:58:54 1272 1

原创 go语言json解析库jsoniter的使用(替换标准库encoding/json)

100%兼容标准库替换为替换为

2022-07-11 09:49:49 967

原创 go语言websocket库Gorilla Websocket

类型代表一个Websocket连接,服务端通过在HTTP请求的handler中调用方法得到一个:通过调用的和方法来发收消息,消息以byte切片存储。下面例子展示了如何用这两个方法实现echo:上例中:p是[]byte类型。messageType是int型,值可能是或。应用程序也可以使用和接口来发收消息。要想发送消息,先调用的方法得到一个,然后写消息到这个writer,写完消息后close它。要想接收消息,先调用的方法得到一个,然后读直到返回。下面的例子展示如何使用和方法实现echo:数据类消息Web

2022-07-11 09:49:11 3362 1

原创 git difftool 之 idcdiff

1.2 使用执行上面的命令之后,将用两列的视图显示两个文件的差异。命令可以用来显示文件差异。命令可以使用外部工具来显示文件差异。可使用-extcmd参数指定具体diff工具:2.2 git-icdiff你可以设置git-icdiff采用的icdiff选项:...

2022-07-11 09:48:29 315

原创 git difftool 之 vimdiff

在类nuix平台,我们希望对文件之间的差异之间快速定位,希望能够很容易的进行文件合并……。可以使用Vim提供的diff模式,通常称作vimdiff,就是这样一个能满足所有这些需求,甚至能够提供更多的强力工具。首先保证系统中的diff命令是可用的。Vim的diff模式是依赖于diff命令的。Vimdiff的基本用法就是:或者1.3 常用命令跳转到下一个diff点:使用命令跳转到上一个diff点:使用命令如果希望手工修改某一行,可以直接使用通常的vim操作进行修改。如果希望在两个文件之间来回跳转,可以用下

2022-07-11 09:48:00 1462

原创 Git命令速查手册

设置个人标识(全局生效):设置个人标识(仅在项目内生效):设置编辑器。缺省会使用默认的编辑器。git commit时会打开编辑器,让你填写提交日志:查看设置项的值:2. 克隆远程仓库到本地如果需指定本地目录名:3. 查看文件状态如果需要以short方式输出结果:_M:已修改未暂存MM:已修改且暂存,然后又修改A_:新文件已暂存M_:已修改且暂存??:未跟踪的文件记法:前面的字符表示暂存状态,后面的字符表示修改状态查看未暂存的修改内容:查看已暂存但未提交的修改内容:使用外

2022-07-11 09:47:28 149

原创 iOS开发中解决第三方静态库符号冲突的终极方案

在iOS开发的时候,经常会使用各种第三方静态库,这些库内部可能会打包了相同的第三方库。那么在链接的时候就会发生符号冲突。例如:A厂商提供的libA.a 和 B厂商提供的libB.a 内部可能都打包了libssl.a在linux平台发生这样的事情时,可以使用objcopy来修改符号名称。但在Macos平台上没有这个命令。卧槽。。。那怎么办?好在,可以使用Xcode的编译工具链中的ld命令来解决。使用ld命令隐藏不想导出的符号第1步:ar -x 解开静态库 (如果是fat库,先lipo为thin库;如

2022-07-11 09:46:29 1854

原创 [Go语言入门] 14 Go语言goroutine和通道详解

Go语言入门, Go语言goroutine, Go语言通道, Go语言chan

2022-07-11 09:44:57 534

原创 [Go语言入门] 13 Go语言接口(interface)详解

Go语言入门, Go语言接口

2022-07-11 09:43:46 7517 3

原创 [Go语言入门] 12 Go语言结构体(struct)详解

Go语言入门, Go语言结构体

2022-07-11 09:43:18 2816

原创 [Go语言入门] 11 Go语言函数

Go语言入门, Go语言函数

2022-07-11 09:42:06 567

原创 [Go语言入门] 10 Go语言Map详解

Go语言入门, Go语言Map

2022-07-10 20:58:52 1855

原创 [Go语言入门] 09 Go语言切片详解

Go语言入门, Go语言切片

2022-07-10 20:54:49 889

原创 [Go语言入门] 08 Go语言数组

Go语言入门, Go语言数组

2022-07-10 20:52:04 823

原创 [Go语言入门] 07 Go语言字符串

Go语言入门, Go语言字符串

2022-07-10 20:47:19 920

原创 [Go语言入门] 06 Go语言循环语句

Go语言入门, Go语言循环语句

2022-07-10 20:43:49 810

原创 [Go语言入门] 05 Go语言分支语句

Go语言入门, Go语言分支语句

2022-07-10 20:40:39 190

原创 [Go语言入门] 04 Go语言运算符

Go语言入门, Go语言运算符

2022-07-10 20:38:00 248

原创 [Go语言入门] 03 Go语言数据类型、变量、常量

Go语言入门, Go语言数据类型、变量、常量

2022-07-10 20:35:33 289

原创 [Go语言入门] 02 Go语言程序结构

Go语言入门, 02 Go语言程序结构, Go语言模块

2022-07-10 20:27:16 349

空空如也

空空如也

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

TA关注的人

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