联盛德 HLK-W806 (十三): 运行FatFs读写FAT和exFat格式的SD卡/TF卡
FatFs已经将Fat格式的操作作了抽象化, 在新环境下运行FatFs, 只需要实现 diskio.c 中的几个方法, 还需要实现RTC接口, 这样才能在创建文件时写入正确的时间. 完整的代码在演示用例下, 使用了最新的R0.14b版本的FatFs. 在选项中开启了长文件名支持, 开启了对exfat格式的支持, 能正常挂载和读写64GB的大容量TF卡. 阅读全文
posted @ 2022-01-13 16:32 Milton 阅读(2118) 评论(0) 推荐(0)
FwLib_STC8 是一个针对STC8G, STC8H系列MCU的C语言封装库, 适用于基于这些MCU的快速原型验证. 基于FwLib_STC8的项目, 可以在Linux下使用SDCC编译, 也可以在Windows下使用Keil C51环境进行编译. 前面介绍了在Windows的Keil5环境下使用FwLib_STC8, 以下介绍在Linux(本文使用Ubuntu20.04)的VSCode下的环境搭建
FwLib_STC8 是一个针对STC8G, STC8H系列MCU的C语言封装库, 适用于基于这些MCU的快速原型验证. 基于FwLib_STC8的项目, 可以在Linux下使用SDCC编译, 也可以在Windows下使用Keil C51环境进行编译. FwLib_STC12封装库较多采样函数方式对寄存器进行封装, 而函数与函数间的层级调用都会增加栈开支, 这样一方面容易对8位MCU的内存造成占用, 另一方面增加了固件尺寸. 在FwLib_STC8封装库中, 尽可能使用宏的方式对寄存器操作进行封装, 控制方法间的层级调用深度, 相比较FwLib_STC12, 节省了固件体积和堆栈占用.
ST7567是128x64分辨率单色LCD液晶显示屏常用的芯片方案. ST7567是点阵LCD驱动集成电路, 可以使用8位并口或4线SPI串口(SPI-4)直接连接外部微控制器. 从MPU传输的数据存储在内部65x132 bits的显示数据内存(DDRAM). 在 DDRAM 中存储的数据与LCD点阵直接关联. ST7567 包含 132 段输出, 64 位输出和 1 个公共图标输出, 输出不需要外部时钟驱动.
ESP32-SOLO-1 拆装, 都是带板的, 长这个样子, 需要用热风枪从背面吹, 因为中间有焊点, esp32朝下, 用280度大概2到3分钟, 四周需要均匀着风, 用镊子试探天线部分是否松动, 将外沿稍微剥离后加热后边直到自然脱落, 再焊到转接板上. IDF SDK 如果烧录对象是solo, 需要勾选`Component config -> FreeRTOS -> Run FreeRTOS only on first core`
CDK全称C-SKY Development Kit, 是平头哥推出的, 支持平头哥自研指令集C-SKY架构和RISC-V架构的芯片的集成开发环境, 为开发者提供统一的图形开发界面, 帮助开发者进行应用开发. 这篇说明是为了让CDK用户能快速上手使用SDK运行示例代码.
在T60, T410s, T420s, X240, T550这些机器上都遇到过这个问题. 产生漂移的问题根源是指点杆的校准机制. 这个机制的工作原理, 就是对指点杆连续采样的值进行监控, 如果在一段时间内x轴y轴的采样值保持不变(就像持续受到同一个方向的均匀的力), 程序就会认为这个采样值是本底偏差, 校准机制就会把这个x轴y轴采样值作为静止状态的参考值(类似于电子秤的清零).
ST7789/ST7789V/ST7789H2, 用于单片驱动262K色图像TFT-LCD, 包含 720(240*3色) x 320 线输出, 可以直接以SPI协议, 或者8位/9位/16位/18位并行连接外部控制器. 显示数据存储在片内 240x320x18 bits内存中, 显示内存的读写不需要外部时钟驱动. ST7789有 ST7789, ST7789V, ST7789H2等型号, 分辨率有240x204, 240x240, 240x320等多种类型, 驱动方式都是一样的
出过众多优秀固件的电视盒子论坛Freaktab, 将于2021年12月31日关闭 R.I.P
0.96的128x64 OLED液晶屏是嵌入式应用中最常见的一种屏幕, 这种屏幕常见的pin脚类型有两种: I2C和SPI, 驱动通常是SSD1306, 最近会有一些是SSD1315, I2C类型的OLED只有4个pin脚, 不可修改连接模式, 比较好辨认, SPI类型的OLED有6/7/8pin几种类型, 最常见的是7pin, 带协议选项的模块, 这种模块的背面PCB会有三种模式的选择说明, 后面列出的Rx代表那些位置需要焊接电阻, 通常这些电阻阻值都是5KR, 默认出厂都是4线SPI的模式. 在SPI模式下, SSD1306和SSD1315的驱动方式是一样的. 因为W806可以使用硬件SPI, 刷新速度比I2C方式要快将近10倍, 这里介绍的是4线SPI模式的驱动
Air103和W806实际上是同一个芯片, 唯一区别就是丝印不同, W806与Air103的软件理论上都是通用的, W806 SDK也可以运行在Air103上, 所以也可以用C语言给Air103开发固件了. 代码编写和编译与W806一致, 需要注意的差别是, GPIO和PWM的demo中因为使用了板载LED, 与Air103有差异(PB0, PB1, PB2 => PB24, PB25, PB26), 需要调整.
配件信息 控制器: STC12C5A56S2 定时芯片: DS12C887 显示: 4位0.56寸数码管 其它: 无源蜂鸣器, 三极管S9012, 电阻10K*2, 100*1, 电容30p*2, 104*2, 12MHz晶振, 轻触开关*2, MicroUSB转接口 功能 24小时计时, 包含年,
按钮就是一种配备了弹性装置的双状态开关: 连通和断开. 由于弹性部件的作用, 大部分时间按钮是断开的. 从电路角度看, 按钮扮演的角色就是开路和短路. 按钮在嵌入式设备中是常见组件, 按钮在按下和释放时都有可能产生抖动效应, 会导致过程中产生多次短路与开路之间的切换, 对于这个问题, 需要从硬件和软件方面来解决: 硬件上, 低通滤除抖动, 软件上, 增加第一次检测到动作后的 dead time. 按键的系统消息是通过状态机模型进行处理的.
浙公网安备 33010602011771号