使用 rust 访问串口
在嵌入式开发中经常使用到串口,这里演示一下如何快速地使用 rust 来编写串口的访问代码,我们使用 serialport crate 来实现, 一起来感受一下 rust 惊人的开发效率吧!! 环境搭建 把 RX 和 TX短接,接入电脑 创建工程 cargo new serial_demo 添加依赖 在 Cargo.toml 文件里指定 serialport 的版本 [depe...
在嵌入式开发中经常使用到串口,这里演示一下如何快速地使用 rust 来编写串口的访问代码,我们使用 serialport crate 来实现, 一起来感受一下 rust 惊人的开发效率吧!! 环境搭建 把 RX 和 TX短接,接入电脑 创建工程 cargo new serial_demo 添加依赖 在 Cargo.toml 文件里指定 serialport 的版本 [depe...
todo
在 cmake 中, INTERFACE 关键字用于定义接口库(Interface Libraries),这是一种不直接编译成二进制文件,而是用来传递使用要求(如编译选项、定义、包含目录等)给其他目标(如可执行文件或库)的特殊目标。 例一 假设你有一个接口库,你想为链接到它的目标添加一些编译器定义: cmake add_library(my_interface_lib INTERFA...
在 cmake 中, IMPORTED 目标是指那些在项目外部预先构建好的库或可执行文件。通过将这些库或可执行文件作为导入的目标引入,可以在项目中使用它们,就像使用项目内构建的目标一样。这样做的好处是可以方便地重用已有的二进制文件,而无需从源代码重新构建它们,这对于依赖于第三方库的项目尤其有用。 静态库 目录结构如下 myapp ├── other_lib │ ├── inclu...
在 C 语言的世界里,裸指针是可以随意使用的,但是在 C++ 中,裸指针是不能随意使用的,因为它有可能导致内存泄漏。但是有时候确实需要绕不开裸指针,该怎么办?下面介绍一种使用 c++ 的方式来优雅的管理裸指针的方法。 示例 #include <memory> int main() { char *p = nullptr; std::shared_ptr&l...
github 看代码小妙招, 使用 vsode 在线编辑器可以提高效率。 使用在线编辑器之前 用起来极其的不方便, 使用在线编辑器之后 直接在使用之前的界面按下键盘的 . 按键就自动切换到 vscode 在线编辑器了(或者把 https://github.xxxxx 改成 https://github1s.xxxxx 也能切换)。切换后如下图: 在图中,我们可以看到,整个界面和 ...
在 Ubuntu 24.04 中,直接修改 /etc/resolv.conf 可能因系统服务(如 systemd-resolved 或 NetworkManager)自动覆盖而失效。以下是分步解决方案。 编辑配置文件 取消注释并设置 DNS 服务器: sudo vim /etc/systemd/resolved.conf [Resolve] DNS=8.8.8.8 1.1.1.1 ...
并不是所有的 Debian 衍生系统都使用 /etc/network/interfaces 来配置 IP, 常用的还有通过 NetworkManager 或者其他方式, 不过本文主要讲使用 /etc/network/interfaces 来配置的方式。 确认网络接口名称 在开始配置之前,你需要确定要配置的网络接口名称。可以通过执行以下命令来查看所有可用的网络接口: ifconfig -...
docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 linux 系统上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 安装步骤 # 更新你的包索引: sudo apt update # 安装必要的依赖: sudo apt install lsb-release apt-transport-http...
想象如下这个场景,一个 linux 设备上有两个网卡,网卡一和网卡二分别处于两个不同的网段,并与其他设备相连,如何让连接 网卡一的设备和连接网卡二的设备网络互通? 下面介绍如何实现这个需求。 启用网络转发 vi /etc/sysctl.conf net.ipv4.ip_forward=1 使配置生效 sysctl -p 使用iptables配置规则 iptables -F ipt...