0%

IIC协议

IIC简介

内部集成电路 I2C(IIC,Inter-Integrated Circuit) 总线是由Philips公司开发的是一种简单的、半双工同步通信的串行通信接口。它只需要两根线即可在连接于总线上的器件之间传送信息。

Read more »

SPI协议

SPI简介

串行外设接口(Serial Peripheral Interface)的简称也叫做SPI,是一种高速的、全双工同步通信的一种接口,串行外设接口一般是需要4根线来进行通信(NSS、MISO、MOSI、SCK),但是如果打算实现单向通信(最少3根线),就可以利用这种机制实现一对多或者一对一的通信。

Read more »

串口通信

UART串口通信简介

通用异步收发器 UART(Universal Asynchronous Receiver/Transmiter),是一种串行、异步、全双工的通信协议,将所需传输的数据位接一位地传输,在UART通讯协议中信号线上的状态位高电平代表”’,低电平代表”0。其特点是通信线路简单,只要一对传输线就可以实现双向通信,大大降低了成本,但传送速度较慢。

通用同步异步收发器(USART)能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准:NRZ(Non Return Zero)异步串行数据格式的要求。USART通过小数波特率发生器提供了多种波特率。

Read more »

Base64 编码和解码

Base64是一种基于64个可打印字符来表示二进制数据的编码方式。它通常用于在文本数据中传输二进制数据,例如电子邮件和URL。

Base64编码过程

  1. 数据分割:将输入的二进制数据按每24位(3字节)一组分割。如果最后一组不足24位,用0进行填充。
  2. 每6位一组:将每24位的数据再分割成4个6位的数据块。
  3. 映射到字符:每个6位的数据块对应一个Base64字符。Base64字符表包含A-Z、a-z、0-9、+和/,共64个字符。
  4. 填充字符:如果输入数据长度不是3的倍数,输出会填充一个或两个’=’字符,使其长度为4的倍数。
Read more »

线程池

线程池简介

线程池是一种多线程设计模式,用于优化并发任务的执行。通过预创建一组线程,可以减少线程创建和销毁的开销,提高系统性能。线程池主要由两个部分组成:任务队列和工作线程。工作线程从任务队列中获取任务并执行它们。

代码结构

线程池的代码结构如下:

Read more »

网络字节序

对于不同网络中的主机而言可能采用的平台都各不相同,而不同平台的主机在存储数据的方式也不同,一般分为两种方案:大端存储(Big_Endian)or 小端存储(Little_Endian)。

Read more »

将JPEG库移植道Linux系统

1、从对应的官网下载库的源码包

本文以JPEG库为例,移植其他的库操作类似。

搜索 libjpeg(xxlib\libxx),
找代码托管网站(xx.sorceforge、github、gitee),或者原生官网(xx.xx.org)下载。

2、解压文件,阅读redme(使用代码编辑器打开)

定位到 DOCUMENTATION ROADMAP

Read more »

LCD屏幕硬件参数

在开发过程中,面对不同型号的LCD屏幕,使用文件IO接口时,应该根据LCD屏幕的实际的硬件参数来申请内存,这样有助于提高程序的可移植性.(在使用其他硬件设备的时候也是一样的)


硬件参数

在Linux系统下是利用Framebuffer子系统来驱动显示设备的,所以Framebuffer子系统会读取LCD屏的硬件信息并存储在内核空间中,关于LCD的硬件参数都是定义在**/usr/include/linux/fb.h**头文件中。

Read more »

Ubuntu20.04桥接模式网络链接失败

当时在想用SSH链接开发板,但是在虚拟机在桥接模式下修改了正确的静态IP却一直连补上网络,重启网络服务也不行,初始化虚拟网络设置也不奏效,还尝试使用修改脚本的方式进行IP的修改,但都不行,最后最后看到了一个操作最简单的方法,竟然成功了。

报错:connection failed Activation of network connection failed

Read more »