- 博客(215)
- 资源 (1)
- 收藏
- 关注
原创 一个严谨的STM32串口DMA发送&接收(1.5Mbps波特率)机制
本文描述串口DMA收/发机制设计,及STM32串口DMA收/发实现。
2020-09-03 23:54:58 43418 180
原创 一个NB-IoT/4G模组的AT拨号联网流程
在各类物联网应用中,NB或者4G网络是常见的通信介质,其最大的优势是可以借助现有的移动基站,无需额外建立基站,所以广泛应用在三表(水表、电能表、天然气表)无线抄表中。通常情况下,对于这类小流量的数据,是通过串口(UART)与NB或者4G模组通信,以AT指令的方式进行数据交互和命令控制。
2020-03-21 00:28:03 11227 6
转载 持续更新,值得推荐的c/c++开源框架与库
框架Apache C++ Standard Library : 是一系列算法,容器,迭代器和其他基本组件的集合ASL : Adobe源代码库提供了同行的评审和可移植的C++源代码库。Boost : 大量通用C++库的集合。BDE : 来自于彭博资讯实验室的开发环境。Cinder : 提供专业品质创造性编码的开源开发社区。Bxxomfort : 轻量级的,只包含头文件的库,将C++ 11...
2019-07-03 22:08:07 1237
原创 一个适用各类场合的Makefile模板
1.写在前面 对于Windows下开发,很多IDE都集成了编译器,如Visual Studio,提供了“一键编译”,编码完成后只需一个操作即可完成编译、链接、生成目标文件。Linux开发与Windows不同,Linux下一般用的的gcc/g++编译器,如果是开发ARM下的Linux程序,还需用到arm-linux-gcc/arm-linux-g++交叉编译器。Linux下也可以实现“一键编译...
2019-05-29 23:57:25 4573 1
原创 【组件】onewire(单总线)抽象
1.前言 onewire(单总线)是DALLAS公司推出的外围串行扩展总线技术总线,顾名思义,它是采用一根信号线进行通信,即传输时钟信号又传输数据,而且能够进行双向通信,具有节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。常用到单总线的器件,一般是稳定传感器、EEPROM、唯一序列号芯片等,如DS18B20、DS2431。 在使用单总线时,往往很少CPU会提供硬件...
2018-07-22 15:04:11 13577 6
原创 【组件】模拟spi抽象
1.前言接上一篇“spi抽象/硬件spi”博客。上一篇文章主要描述spi总线抽象过程和使用方式,同时实现stm32f1硬件spi,及spi抽象接口函数的使用。对于一些特殊mcu没有硬件spi,或者硬件spi不够用的情况下,可以用io翻转方式模拟spi总线。模拟spi实现,只需将硬件spi部分替代即可,上层代码或者器件外设驱动程序无须更改,方便移植。模拟spi与之前一篇“i2c抽象/...
2018-01-14 22:55:20 3021 10
原创 【组件】spi抽象/硬件spi
1.写在前面spi(Serial Peripheral Interface)即串行外设接口。与i2c一样,spi也常用外设设备通信的总线,从事嵌入式开发必不可少的掌握。根据本人以往的经历,对spi进行总结(主要是MCU范畴,Linux已有成熟的驱动设备),主要目的及实现:a)spi总线与spi设备分离;b)快速使用新的硬件spi或者模拟spi;c)方便移植spi总线设备及spi外设...
2018-01-07 23:09:16 13289 6
原创 【组件】通用环形缓冲区模块
写在前面环形缓冲区是嵌入式应用(医疗电子、消费电子、工控)中常用的数据结构模型,如音视频流、通信总线数据收发等。一些操作系统、第三方库都提供现成的环形缓冲区接口API,性能和安全性都有保障,多线程访问互斥机制,空内存访问保护等。1.基本原则先进先出(FIFO),重复使用。2.实现原理环形缓冲区,顾名思义就是一段循环使用的一段内存。通过写指针向“空白内存”(未写入过或者已经被读出...
2017-12-26 15:23:53 6934 17
原创 【组件】i2c抽象/模拟i2c
1.写在前面i2c总线是由PHILIPS公司开发的一种简单、双向二线制同步串行总线。关于i2c的使用,并不陌生,C51、ARM、MSP430等,都基本集成硬件i2c,或者不集成i2c的,可以根据总线时序图使用普通IO口翻转模拟一根i2c总线。对于当下流行的stm32饱受诟病的硬件i2c,相信很多人都是使用模拟i2c。模拟i2c的源码比较多,大多都是大同小异,对于各类例程,提供的模拟i2c似乎都...
2017-12-23 09:27:26 14333 2
原创 C++ RAII典型应用之lock_guard和unique_lock模板
RAII典型应用之lock_guard和unique_lock模板的使用。
2021-05-18 20:03:42 1060 4
原创 【代码质量】RAII在C++编程中的必要性
RAII(Resource Acquisition Is Initialization),中文可直译为资源获取即为初始化,是C++语言的一种管理资源、避免泄漏的方法标准。
2021-05-15 22:07:28 552
原创 24系列EEPROM/FRAM通用驱动库移植到RT-Thread
24系列(i2c接口)EEPROM/FRAM通用驱动库移动到RT-Thread。
2021-04-13 23:59:16 1523
原创 【RTD】AD7793三线式铂电阻PT100/PT1000应用
本文介绍RTD驱动芯片AD7793 与三线RTD(PT100/PT1000)连接使用方法。
2021-03-06 18:36:58 10421
原创 open函数簇与fopen函数簇区别和用法
linux系统下,可以通过open函数簇和fopen函数簇访问文件,两种访问方式具有不同的特性和访问效率。
2021-02-27 22:15:32 756
原创 【12月】RT-Thread VL53L0X TOF传感器驱动实现
本文描述VL53L0X TOF传感器对接RT-Thread sensor框架的具体实现过程。
2020-12-20 00:31:37 2853 11
原创 【Linux驱动编程】regmap框架模型应用详解
regmap是在 Linux 内核为减少慢速 I/O 驱动上的重复逻辑,提供一种通用的接口来操作底层硬件寄存器的模型框架,简化驱动开发,提高访问效率。
2020-11-30 23:59:24 5108
原创 C/C++解析tar文件
tar文件是将多个文件打包,以512字节块存储,并在每个文件前增加一个文件头描述信息。通过tar文件的存储格式,使用C/C++解析tar文件。
2020-11-22 00:00:03 3845
原创 设计模式回顾——原型模式(C++)
原型模式(Prototype Pattern),是一种创建型设计模式,指的是以原型实例指定待创建对象的种类,并通过拷贝(克隆)原型对象来创建新的对象。
2020-11-11 18:14:13 792
原创 设计模式回顾——观察者模式(C++)
观察者模式(Observer Pattern),指的是定义一种“一对多”的依赖关系,使得多个观察者对象同时监听某一主题对象,在主题对象的状态发生变化时,通知所有依赖该对象的观察者。
2020-10-29 17:49:11 905
原创 设计模式回顾——模板模式(C++)
模板模式(Template Pattern),指的是定义一个抽象(算法)模板结构父类,具体实现方法由子类实现。模板模式是行为型设计模式中使用较为广泛的设计模式。
2020-10-24 18:22:53 2220 1
原创 使用memtester工具对嵌入式Linux内存压力测试
memtester是一款比较经典而且使用广泛的内存检测工具,具备使用简单、易于移植、检测结果可靠性好的特点。
2020-10-21 00:06:21 12530 9
SecureCRT 8.0.rar
2019-08-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人