read_bits 函数掩码获取及计算

read_bits 函数掩码获取及计算

写在前面 嵌入式当中,使用例如i2c、spi等外设时,需要获取某个寄存器的某些位的具体值,这里就来探讨如何实现。 需求 现有需求,要求从寄存器获取从 第 5 位开始,往后数 3 位的值。 第 5 位开始,我们标记为:S = 5。 读取 3 个位,我们标记为:bit_len = 3。 这里先要明确一个

write_bits函数掩码获取及计算

write_bits函数掩码获取及计算

写在前面 嵌入式当中,使用例如i2c、spi等外设时,需要对寄存器中的某些连续位进行写入操作,而不影响其他位,本文来探讨如何实现。 需求 现在有数据要求写入到寄存器,从第 3 位开始,连续写入 4 位的数据。写入的数据为:1100,我们假设寄存器原始数据为:0110 1100。 我们定义从第 3 位

创建GATTS服务来控制开发板上的LED

创建GATTS服务来控制开发板上的LED

创建项目 使用 idf.py create-project 创建新项目 idf.py create-project gatts 随后使用更改项目配置,使其支持蓝牙 idf.py menuconfig 编辑gatts.c 包含要使用的头文件 #include <stdio.h>

GDB Set Command

GDB Set Command

GDB Set 命令的两个重要功能 设置代码中变量的值 设置环境变量的值 set var <var>=<value> set var i=10 set $<var>=<value> set $a=10 在 GDB 调试环境中设置一个变量并赋值。 有什么用? 假设有一个数组 k,在运行一段时间之后,想

使用 ESPPROG 烧录 ESP32 程序

使用 ESPPROG 烧录 ESP32 程序

写在前面 既然已经拥有了一块 espprog,那么我们一定要物尽其用,使用它来烧录和调试 esp32。 我们使用 openocd 来烧录程序。 macOS 下载安装 ftdi 因为一些这里不再赘述的原因,在macOS下必须要安装ftdi驱动,才能够使用espprog,所以,使用以下命令安装ftid。

neovim + clang-format 修改缩进为 4

neovim + clang-format 修改缩进为 4

写在前面 使用lazyvim时,搭配clang-format格式化代码,会将代码的缩进改为 2 spaces,因为习惯 4 spaces 缩进,遂改之。 1. 补充options.lua vim ~/.config/nvim/lua/config/options.lua 添加以下内容: local

lazyvim 中设置 relativenumber 从 1 开始

lazyvim 中设置 relativenumber 从 1 开始

写在前面 使用 vim 多年,意识到一个问题,vim 的 relativenumber 是从 0 开始索引的,而非 0,导致在当前行进行某些操作时,需要心里默默加一行,造成了不便,遂寻法解决。 编辑lazyvim的ui配置文件 打开.local/share/nvim/lazy/LazyVim/lua

lazyvim ESC+jk 移动文本内容的问题

lazyvim ESC+jk 移动文本内容的问题

写在前面 使用lazyvim时,会发现,如果快速按下ESC + j/k,则文本会换行,这很不爽,很不符合直觉 打开lazyvim的用户选项设置文件 vim ~/.config/nvim/lua/options.lua 添加以下内容 -- unmap for moving lines local un

clangd 禁用所有编译参数报错

clangd 禁用所有编译参数报错

写在前面 因为本人喜欢用现在非常受欢迎的neovim版本lazyvim,所以编辑esp32(esp idf)项目时,发现一个很强迫症的问题。 因为esp32项目并非使用clang作为编译器,但是neovim的语言服务器clangd很优秀,所以,直接使用neovim搭配clangd打开esp32项目源