![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
单片机开发随笔
文章平均质量分 85
记录开发过程中的一些问题
jianqiang.xue
欢迎交流,寻找小众MCU厂商代理合作
展开
-
单片机 STM32 HAL IO扩展 74HC595 例子代码
74HC595使用说明原创 2020-04-11 11:14:41 · 2392 阅读 · 1 评论 -
单片机 MM32 HAL EG2801 电量计 代码 中文资料 例子 代码
EG2801 电量计的使用方法原创 2020-04-13 08:30:16 · 1001 阅读 · 1 评论 -
单片机 MM32 HAL 74hc595 例子 代码
这是74HC595芯片,如图1,它是一颗单片机IO口扩展芯片,使用它,我们可以很容易的将单片机的3个输出引脚扩展为8个。这颗芯片通过串行数据输入,数据输出的方式为1路串行或8路并行。引脚有三种输出状态:高电平、低电平和高阻态。它的引脚驱动能力为35mA,原创 2020-04-13 08:31:51 · 638 阅读 · 0 评论 -
单片机 MM32 HAL OLED c语言 代码
OLED(Organic Light-Emitting Diode),又称为有机电激光显示、有机发光半导体(Organic Electroluminescence Display,OLED)。OLED属于一种电流型的有机发光器件,是通过载流子的注入和复合而致发光的现象,发光强度与注入的电流成正比。OLED在电场的作用下,阳极产生的空穴和阴极产生的电子就会发生移动,分别向空穴传输层和电子传输层注入,迁移到发光层。当二者在发光层相遇时,产生能量激子,从而激发发光分子最终产生可见光。原创 2020-04-13 08:33:44 · 557 阅读 · 0 评论 -
[单片机框架] [kv_sys] 实现一个简易KV键值系统(最终版)
让Flash变为NoSQL(非关系型数据库)模型的小型键值(Key-Value)存储数据库。在产品上,能够更加简捷的实现 设定参数 或掉电保存的功能。注意项:读取时,一定是4字节对齐的。即读取0xff00,正确。读取0xff01,错误。简易设置KEY和VAL,自动垃圾回收。至少需要占用两页FLASH空间。Env 小型KV数据库,支持 写平衡(磨损平衡) 及掉电保护模式。平衡flash读写,提高flash擦写寿命。本版本改为数据任意长度,灵活性更高.原创 2022-10-24 22:54:42 · 1054 阅读 · 0 评论 -
[单片机框架][DFU] Dfu升级例子 带crc校验+超时机制+led指示灯+芯片加锁+芯片自擦
所谓DFU(Device Firmware Update),就是设备固件升级的意思,而OTA(Over The Air)是实现DFU的一种方式而已,准确说,OTA的全称应该是OTA DFU,即通过空中无线方式实现设备固件升级。只不过大家为了方便起见,直接用OTA来指代固件空中升级(有时候大家也将OTA称为FOTA,即Firmware OTA,这种称呼意思更明了一些)。只要是通过无线通信方式实现DFU的,都可以叫OTA,比如2G/3G/4G/WiFi/蓝牙/NFC/Zigbee,他们都支持OTA。原创 2022-02-13 21:55:55 · 956 阅读 · 0 评论 -
[单片机框架] [drivers] [hc4051] 8路模拟分流器
74HC4051是- -款八选一模拟开关电路,内置3个地址选择端(A0~ A2), 低有效的使能输入端(E),8路独立的输入/输出端(Y0~Y7) 及公共输入/输出端(Z)。电路内部有8个双向模拟开关,每个开关的一-端连接到独立的输入输出(Y0~Y7)端,另一端连接到公共的输入/输出(Z) 端。原创 2022-02-09 18:21:44 · 3950 阅读 · 1 评论 -
[单片机][USB_HID] USB问题汇总
单节点只会请求2次,以上现在属于正常。windos枚举时,每个节点都会重新重新请求字符串2。返回数据过大重启compatibility with the USB 1.0)."babble"错误. 检测到设备返回了一个无意义的数据"babble"错误. 一个"babble"错误发生当端点接受数据多于端点的特定最大报文大小.已经超过设置的最大发送的报文长度了一个事务传送到了一个处于STALL(挂起)状态的端点。原创 2022-01-13 18:16:44 · 2694 阅读 · 0 评论 -
[单片机框架] [kv_sys] 实现一个简易KV键值系统(升级版)
Env 小型KV数据库,支持 写平衡(磨损平衡) 及掉电保护模式让Flash变为NoSQL(非关系型数据库)模型的小型键值(Key-Value)存储数据库。在产品上,能够更加简捷的实现 设定参数 或掉电保存的功能。原创 2022-01-13 16:46:21 · 415 阅读 · 1 评论 -
[单片机框架] [app_led] [WS2812x] 利用软定时器实现WS2812x闪烁和呼吸等灯光模式
引脚编号引脚名称说明1DO控制数据信号输出端2DI控制数据信号输入端3VCC控制电路电源正极4NC空脚5VDDLED电源正极6VSS电源负极数据时序图电平描述时间T0H0 码, 高电平时间T0L0 码, 低电平时间T1H1 码, 高电平时间T1L1 码, 低电平时间RES低电平时间约 >50us智能集成LED光源 WS2812 通过简单的外部接口、特有的级联方案便于利用MCU完成多个LED控制,极大简化了LED控制接口。原创 2021-12-12 20:33:23 · 1993 阅读 · 0 评论 -
[单片机框架] [onewire] 利用单线协议来点亮WS2812X 模拟IO 兼容带OS
ws2812x数据传输时间T0H 0 码,高电平时间 220ns~380nsT0L 0 码,低电平时间 580ns~1.6µsT1H 1 码,高电平时间 580ns~1.6µsT1L 1 码,低电平时间 220ns~420µsRES 帧单位,低电平时间 >280µs 以上对于ARM_M平台 @24M1个NOP:(1/24000000)100010001000==41.67ns__NOP(); __NOP(); __NOP(); __NOP(); __NOP(); 5原创 2021-12-12 20:24:41 · 1131 阅读 · 0 评论 -
[单片机][电路笔记] 升压IC输出公式
当整个电路只使用单个电源(比如3.7V锂电池)供电时,可以通过降压输出3.3V、1.6V等较低电压给IC供电,有时候电路中需要更高的电压,比如一些移动设备的屏幕就需要较高电压驱动,比如12V,在移动设备中再增加一个12的独立电源不太现实,而且锂电池一般都是3.7V(充满电为4.2V),这个时候就需要使用到升压电路了,这个也有对应的IC,一般要配合电感、电容实现升压和降压模式中DC-DC的连接方式不一样。PW5410A的输入电压范围2.7V-5V,输出电压5V固定电压,输出电流高达250MA。原创 2021-11-23 09:42:00 · 3756 阅读 · 0 评论 -
[单片机框架] [kv_sys] 实现一个简易KV键值系统
RAM 16 字节 ROM 约500字节。原创 2021-11-04 16:59:49 · 735 阅读 · 0 评论 -
[单片机框架][os层] freertos_rtc 中间件 公共函数
重新封装FREERTOS_NRF_RTC函数,以便适配RTX4 /RTX5 / FREERTOS。为什么要单独把RTC拿出来,因为不同MCU的RTC寄存器不一致,这里适配的是NRF52系列的。Nordic的协议栈与RTX/RTX5冲突,因为他们都使用的SVN。(具体原因参考:[nrf51][nrf52] 移植RTX或者FreeRTOS需要注意的问题)FreeRTOS 是一类 RTOS,设计得足够小以在微控制器上运行——尽管它的使用不限于微控制器应用。微控制器是一种小型且资源受限的处理器,它在单个原创 2021-10-19 11:19:09 · 528 阅读 · 0 评论 -
[单片机框架][os层] freertos 中间件 公共函数
重新封装freertos函数,以便适配RTX4 /RTX5 / FREERTOS_NRF_RTC。FreeRTOS 是一类 RTOS,设计得足够小以在微控制器上运行——尽管它的使用不限于微控制器应用。微控制器是一种小型且资源受限的处理器,它在单个芯片上集成了处理器本身、只读存储器(ROM 或闪存)以保存要执行的程序,以及程序所需的随机存取存储器 (RAM)执行。通常,程序直接从只读存储器中执行。微控制器用于深度嵌入式应用程序(那些您从未真正看到处理器本身或其运行的软件的应用程序),这些应用程序通常原创 2021-10-19 11:11:28 · 2820 阅读 · 0 评论 -
[单片机框架][os层] RTX5 中间件 公共函数
Keil RTX5 是一种免版税、确定性、全功能的实时操作系统,它实现了 CMSIS-RTOS API v2,这是一种适用于基于Cortex-M 处理器的设备的通用 RTOS 接口。功能包括定期激活定时器功能、内存管理和线程之间的消息交换。现在RTX4和RTX5属于CMSIS软件包的一部分,Apache2.0授权,几乎随意商用。Github开源地址:https://github.com/ARM-software/CMSIS_5重新封装RTX5函数,以便适配RTX4 / FREERTOS / FRE.原创 2021-10-19 10:55:20 · 632 阅读 · 0 评论 -
[单片机框架][os层] RTX4 中间件 公共函数
重新封装RTX4函数,以便适配RTX5 / FREERTOS / FREERTOS_NRF_RTC。Keil RTX是为ARM和Cortex-M设备设计的免版税,确定性的实时操作系统。它允许您创建同时执行多个功能的程序,并帮助创建更好的结构和更容易维护的应用程序。特征具有源代码的免版权,确定性RTOS灵活的调度:循环,抢占和协作具有低中断延迟的高速实时操作为资源有限的系统提供小封装无限数量的任务每个具有254个优先级无限数量的邮箱,信号量,互斥量和计时器支持多线程和线程安全操作内核感原创 2021-10-19 10:43:51 · 405 阅读 · 0 评论 -
[单片机] fota dfu 升级
所谓DFU(Device Firmware Update),就是设备固件升级的意思,而OTA(Over The Air)是实现DFU的一种方式而已,准确说,OTA的全称应该是OTA DFU,即通过空中无线方式实现设备固件升级。只不过大家为了方便起见,直接用OTA来指代固件空中升级(有时候大家也将OTA称为FOTA,即Firmware OTA,这种称呼意思更明了一些)。只要是通过无线通信方式实现DFU的,都可以叫OTA,比如2G/3G/4G/WiFi/蓝牙/NFC/Zigbee,他们都支持OTA。原创 2021-05-06 11:37:07 · 604 阅读 · 0 评论 -
[单片机] crc32
循环冗余校验(CRC)是用于检测数据损坏的错误检测码。发送数据时,会根据数据内容生成简短的校验和,并将其与数据一起发送。接收数据时,将再次生成校验和并将其与发送的校验和进行比较。如果两者相等,则没有数据损坏。所述CRC-32算法本身转换可变长度字符串转换成8个字符的字符串。转载 2021-04-15 10:10:50 · 681 阅读 · 0 评论 -
[单片机] crc16算法
CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。奇偶校验虽然简单,但是漏检率太高,而CRC则要低的多,所以大多数都是使用CRC来校验。CRC也称为多项式码。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,进而可以保证在软件层次上数据传输的正确性和完整性。原创 2021-04-15 10:05:26 · 2570 阅读 · 0 评论 -
[单片机] md5签名算法
MD5 (Message Digest Algorithm 5,消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数MD5的算法可以简述如下:使用例子伪代码四、实际应用情景1:服务器端密码存储很久前安全意识还很淡薄,不少服务器密码是明文保存于数据库中的。一旦攻击者成功入侵到数据库,就直接取得账号和密码随着时间发展,开发者认识到密码明文保存的脆弱性,采用加密保存密码。此阶段不存储用户的原始密码,而是存储其密码的签名。用户登录时只需要计算其输入密码的签名与服务器端保存的签名是否一致即可。这样,原创 2021-01-30 14:18:59 · 1100 阅读 · 0 评论 -
USB_PD_R3_0 V1.1 PD协议 协议层 中文翻译
1. 协议层1.1 概述本章描述了USB电源传输规范的协议层的要求,包括:①有关如何构造和使用消息的详细信息。②计时器和超时值的使用。③使用消息和重试计数器。④复位操作。⑤错误处理。⑥状态行为。1.2 消息本规范定义了三种类型的消息:1.2.1 控制消息包类型:①GoodCRC:表示通讯crc校验没问题。②Accept(接收):表示充电器接受了用电器的请求。③Re......原创 2020-04-17 16:36:48 · 6627 阅读 · 9 评论 -
[nrf51][nrf52][low power] 使用RTX时 如何进入低功耗
1、由于RTX使用了RTC1中断,导致频繁唤醒,无法进入睡眠状态。2、思路:进入低功耗前,关闭RTC1电源,按键唤醒后重新配置RTC1。伪代码:进入低功耗前1.关闭外设GPIO nrf_gpio_cfg_default(N);2.关闭串口 NRF_UART0->ENABLE = 0; NRF_UART0->POWER = 0;...原创 2020-04-01 11:11:00 · 429 阅读 · 0 评论 -
单片机 PAJ7620U2 IIC协议 9种手势
由手势辨识传感器、LED和镜头组合而成的小尺寸模组可辨识单一物件之手势,并具有手势完成之自动判断功能具有两种模式:「手势模式」或「游标模式」手势模式:内建多达9种手势游标模式:可输出追踪物体的位置、尺寸和亮度的即时数据工作距离最多可达20公分。原创 2020-04-13 13:47:49 · 3400 阅读 · 4 评论