段式 LCD
段式 LCD(Segment LCD,Segmented Liquid Crystal Display)是一种常用于低功耗、简单图形显示场景(如电子表、温湿度计、仪表盘等)的液晶显示技术。它通过控制液晶分子的偏振状态来显示固定的“段”(Segment),从而组成数字、字母或图形。 一、段式LCD原理 段式LCD 必须由交流信号驱动,如果使用直流信号会损坏 LCD。LCD 段在两个电极之间的晶体上施加电荷——COMx 线和 SEGx 段线。这两个电极施加的电位差就是 LCD 段看到的波形。LCD 段上显示的 RMS 电压决定了它是打开还是关闭,一般来说 液晶的显形电压为驱动 IC 的 VLCD 端电压,故调节 VLCD 端的驱动电压,可以调整液晶显示的深浅程度。段式 LCD 常见驱动方式为多路复用(Multiplex),其为了节省引脚,一个段电极(SEG)要被多个 COM(公共电极)“共用”。于是每个液晶段的电压并不是单纯的高低电平,而是 COM 与 SEG 之间的“差分电压”: 驱动芯片就要“租用”(合理分配)这几个电平来确保: 当前被选中的段得到较大的有效电压(点亮); 未被选中的段得到较小的有效电压(熄灭)。 更多内容可以参考 T1 的这个手册,讲的很详细。链接在此 二、段式LCD驱动方式 段式 LCD 可以通过单片机直接驱动,但是这种方式存在会占用 MCU 的 IO,故一般较为复杂的 LCD 多采用驱动 IC 的方式,通过 SPI、I²C、并行、GPIO bit-bang 等,常见的段式 LCD 驱动 IC 如下(STM32 混入): 型号 接口 COM×SEG 特点与应用 HT1621 SPI 4×32 低功耗、常见于电子表、仪表 HT1622 SPI 4×32 带 RAM 缓冲区 HT16C21 I²C 4×40 自动扫描、内置偏置电压 PCF8566 I²C 4×40 NXP 出品,稳定可靠 PCF8576C I²C/并行 4×40 多种模式、支持扩展 STM32L 系列 MCU 内置驱动 最多 8×40 无需外部 IC,超低功耗 AIP1628 / TM1629 / PT6523 SPI/并行 6×13~6×16 常见于家电、遥控器显示 三、驱动示例 本文以 GN1623 IC 为例,描述如何看懂 LCD COM和 SEG 连接图,以及驱动 IC。GN1623 具有 8 个 COM IO,48 个 SEG IO,故其最多可以驱动 8x48 段,内置了串行接口、蜂鸣器、看门狗/时基定时器等功能。 ...
Logicx
背景 这是一个开源项目,使用 RP2040 为主芯片做一个逻辑分析仪,参考网上的成熟方案,学习下 RP2040 的开发及 rust 前后端开发。本文将记录完成开源项目所遇到的一些新知识点。 RP2040 1.Mac 环境搭建 本来想直接使用 vscode 工具的,奈何 vscode 下载 sdk 太慢了,也不想配置代理,所以我直接配置的本地环境。 安装 pico 工程生成工具,https://github.com/raspberrypi/pico-project-generator 运行 python3 pico_project.py --gui,mac 这里会提示 tkinker 找不到,网上找了一圈试了一堆终于发现这玩意儿可以直接通过brew install pyhon-tk安装。 然后就可以看到弹出的 ui 界面了,根据需要选择即可,这里其实和 vscode 创建工程一模一样。生成的目录结构如下: . ├── build ├── CMakeLists.txt ├── logicx.c └── pico_sdk_import.cmake
Commitizen的使用
1.commitizen介绍 Commitizen是一款用于实现Git提交信息规范化的命令行工具,通过交互式引导帮助开发者生成符合约定格式的提交内容,提升团队协作效率和代码维护质。 2.Commitizen的使用 pipx install commitizen pipx upgrade commitizen or brew install commitizen >cz commit ? Select the type of change you are committing (Use arrow keys) » fix: A bug fix. Correlates with PATCH in SemVer feat: A new feature. Correlates with MINOR in SemVer docs: Documentation only changes style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) refactor: A code change that neither fixes a bug nor adds a feature perf: A code change that improves performance test: Adding missing or correcting existing tests build: Changes that affect the build system or external dependencies (example scopes: pip, docker, npm) ci: Changes to CI configuration files and scripts (example scopes: GitLabCI) 多行输入可以使用|pip通道,实现换行的目的,亲测有效。 ...
Git命令使用
1.git stash命令 1.1 git stash命令 git stash命令用于将当前工作区的修改保存到栈中,以便后续恢复。它可以将工作区的修改保存到栈中,然后切换到其他分支进行工作,而不影响当前分支的修改。 1.2 git stash pop命令 git stash pop命令用于将栈中的修改恢复到工作区,并从栈中删除该修改。它可以将栈中的修改恢复到工作区,并且删除栈中的该修改,以便后续可以继续工作。 1.3 git stash list命令 git stash list命令用于列出栈中的所有修改。它可以将栈中的所有修改列出,以便用户查看和选择要恢复的修改。 1.4 git stash apply命令 git stash apply命令用于将栈中的修改恢复到工作区,但不从栈中删除该修改。它可以将栈中的修改恢复到工作区,并且不删除栈中的该修改,以便用户可以继续修改。 1.5 git stash drop命令 git stash drop命令用于从栈中删除指定的修改。它可以从栈中删除指定的修改,以便用户可以继续修改。 1.6 git stash clear命令 git stash clear命令用于清空栈中的所有修改。它可以将栈中的所有修改清空,以便用户可以继续修改。
Hugo博客搭建
1.安装Hugo brew install hugo 新建博客管理文件夹 hugo new site blog_name --format yaml 设置博客主题 我用的是Hugo PaperMod $ git init $ git submodule add --depth=1 https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod 修改博客配置应用主题,通过修改根目录下的hugo.yml文件 baseURL: "" languageCode: zh-cn title: Howe's Blog theme: PaperMod 这样博客的初步框架就打好了,可以先本地预览一下。命令行输入以下指令之后,就可以本地预览了,打开浏览器访问//localhost:1313/ hugo server 2.配置PaperMod 主题配置可以查看github介绍,参考example设置。 3.新建文章 hugo new post/first.md 文章头需要设置为 date: '自动生成' draft: false title: 'first' Tags: ['tags','example] 4.设置GitHub Actions 通过设置github workflow,这样就可以通过自动化发布自己的博文啦!因为我的仓库和github pages仓库不是同一个,所有需要将生成出来的静态文件,push到另一仓库,我的yml配置如下,在仓库根目录下创建 .github/workflow/hugo-deploy.yml name: GitHub Pages on: push: branches: - main # Set a branch to deploy pull_request: jobs: deploy: runs-on: ubuntu-22.04 concurrency: group: ${{ github.workflow }}-${{ github.ref }} steps: - uses: actions/checkout@v4 with: submodules: true # Fetch Hugo themes (true OR recursive) fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod - name: Setup Hugo uses: peaceiris/actions-hugo@v3 with: hugo-version: 'latest' # extended: true - name: Build run: hugo --minify - name: Deploy uses: peaceiris/actions-gh-pages@v3 with: PERSONAL_TOKEN: ${{ secrets.PERSONAL_TOKEN }} publish_dir: ./public EXTERNAL_REPOSITORY: your own github page repo PUBLISH_BRANCH: master commit_message: ${{ github.event.head_commit.message }} 设置完成之后,每次push就会出发github action发布博文了。 ...