
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
define 宏名 宏值用宏名代替宏值(文本原样替换)方便修改,一改全改提高代码可读性auto:栈上自动存储(默认)static:静态区存储,延长生命周期或限定作用域register:建议存储在寄存器extern:声明外部变量/函数。

官网:www.sqlite.org / www.kernal.org(GNU 开源)开源,C 语言开发代码量少,1 万行左右,总大小 10M 以内绿色软件,无需安装文件型数据库,可以移动(整个数据库就是一个.db文件)数据容量最大2T。

这张图是 → 多路选择器选时钟(可选关闭、IPG 时钟、32K 时钟、高速时钟) → 12 位预分频器(分频系数 1~4096) → 32 位计数器(从加载寄存器值开始向下计数) → 与比较寄存器值匹配时触发比较器 → 比较触发中断(ITIF/ITIE)和输出引脚(EPITn_OUT) → 计数到 0 时自动从加载寄存器重载,继续计数:时钟 → 分频 → 计数 → 比较 → 中断/输出

i.MX6ULL 的时钟系统由多个 PLL(锁相环)和分频器组成,通过寄存器配置来选择时钟源和分频比,最终为 ARM 内核、总线和各外设提供所需的工作频率。[时钟源] ──→ [PLL] ──→ [预分频器] ──→ [分频器] ──→ [外设时钟]第三步:设置 CCM_CACRR — ARM_PODF 2分频。第二步:设置 CCM_ANALOG_PLL_ARMn。ARM 内核时钟由 PLL1 提

问题原则外设不工作先查时钟使能程序异常退出先查栈初始化引脚无响应先查IOMUX 复用代码难维护使用结构体映射 + 模块化。

例:2025年3月18日 14:10:33 周二 写法为:{0x33, 0x10, 0x14, 0x18, 0x03, 0x02, 0x25}(秒分时日月周年顺序)DHT11:温湿度双测,0~50°C,精度 ±2°C,1°C分辨率,高位先发(MSB First)│├── 数据:5字节(湿度整数+湿度小数+温度整数+温度小数+校验和)│└── 判断:等低结束 → 延时60us → 采样(高=1,低=

来自 intrins.h,执行一个空操作(NOP指令),占一个机器周期(约1.085us @11.0592MHz)。使用有符号 short(而非 unsigned short),是因为 DS18B20 负温度时高字节符号位为1,short 能正确处理补码,乘以 0.0625 后自动得到负值。作为数据接收方时,必须先释放总线(DQ_HIGH),让上拉电阻把总线拉高,再去检测从机发来的电平变化。位=0

上行帧:0xAA + 0x01 + 0x81 + 0x42 + 0x00 = 0x16E,取低8位 = 0x6E ← 应答校验码。例:发送 0xAB = 1010 1011,实际在线上先出现 bit0=1,然后 bit1=1,...,最后 bit7=1。下行帧:0xAA + 0x01 + 0x01 + 0x42 + 0x00 = 0xEE← 这就是校验码。A-B < -2V = 低电平,抗干扰极强

GATE=0(常用):只要 TR0/TR1 置1,定时器就启动。GATE=1(少用):需同时满足 TR0/TR1=1 且 INT0/INT1 引脚为高电平,定时器才启动(用于测量脉冲宽度)。操作:TCON |= (1 << 6)启动 / TCON &= ~(1 << 6)停止。操作:TCON |= (1 << 4)启动 / TCON &= ~(1 << 4)停止。IT1=1:下降沿触发(推荐,不会

main.c││ └─ 把1234拆成 [4,3,2,1,0,0,0,0] 存入 display_buf[]│└─ digiter_show() ← 每调用一次,只显示一位├─ P0 = 0 (消隐)├─ Bit_Select(pos) → 操作 P2.2/P2.3/P2.4 → 译码器选位├─ Seg_Select(数字) → P0 = seg_table[数字] → 点亮对应段├─ delay








