八股文
指针函数和函数指针123456789101112131415161718192021#include <stdio.h>// 什么是函数指针,什么是指针函数// 函数指针:指向一个函数的指针// 指针函数:一个函数的返回值是一个指针的函数int add(int a, int b){ return a + b;}int* abc(void) // 指针函数{ }int main(void){ int (*ptr)(int, int) = &add; // 函数指针} 指针的大小12345678910111213141516#include <stdio.h>// 指针的大小// char* int* float*// 指针的大小和编译器的位数有关// 在 32bit 的系统霞指针的大小是4个字节// 在 64bit 的系统下指针的大小是8个字节// 指针的大小和指针的类型无关int main(void){ // 将三个类型的指针的大小打印出来 ...
通信协议
https://oss.012700.xyz/butterfly/2024/09/hexo-theme-butteffly-docs-outdate-flat.png 串行和并行1. 串行通信 位通过单根线——发送,下图显示了二进制(01000011)中字母 “C” 的串行传输。当时时钟线为高电平时,接受数据位,高电平为 1,低电平为 0。 2. 并行通信 数据位在导线中同时传输,下图显示了二进制(01000011)中字母 “C” 的并行传输。当时钟线为高电平时,8 个数据位同时接受数据,高电平位 1,低电平位 0。 所以 UART、SPI、I2C 都是串口通信,因为它们都是通过一根线作为数据线传输数据。 全双工与半双工1. 全双工 简单来说,比如我们在打电话时,我们可以在同一时间说话,这就是全双工通信 2. 半双工 相对的,虽然半双工也可以互相通信,但是在同一时间只能单方向传输数据。 UART 和 SPI 都是全双工通信方式,因为他们的数据线都有两根,即可以在同一时间 A 发数据给 B,B 也可以在这个时间发数据给 A。 而 I2C...
博客诞生
前言本站是用 GitHub + Vercel 实现的纯静态页面的博客网站。之前尝试过前后端的 wordpress 和 typecho,也尝试过 vuepress、vitepress 和 docusaurus 等静态网站的搭建,最后还是用回了 hexo +butterfly 的静态博客系统,比较适合我,就是配置起来需要一点耐心,因为是纯静态,所以少不了看文档和修改代码。 Hexo 安装 安装 12345npm install -g hexo-cli// folder:本地文件夹hexo init <folder>cd <folder>npm i 本地运行 123hexo clean # 清除缓存文件 (db.json) 和已生成的静态文件 (public)。第一次建站可以不执行hexo generate # 生成静态文件hexo server # 启动本地明务器。默认情况下,访问网址为:http://1oca1host:4000/ Vercel本地 hexo 文件夹上传到 github 安装 hexo-deployer-git 1npm...