- 博客(15)
- 收藏
- 关注
原创 进程间通信的方式与实现
管道(Pipe):简单的流式数据传输,适用于父子进程之间的通信。信号(Signal):用于进程之间的通知或控制。消息队列(Message Queue):用于进程之间的消息传递。共享内存(Shared Memory)
2025-04-15 11:40:23
578
原创 GD32 LCD模块开发
在编写程序代码时,原本是打算采用的是硬件驱动,因为开发板上的引脚功能有冲突,尝试了使用外部导线连接对应引脚,但是经过调试后,发现依然无法通信,检查后发现是OLED和LCD驱动不同导致(程序不同),然后参考网上stm32驱动LCD程序和软件i2c通信程序,完成新的程序编写,经过调试修改后成功实现功能。配置LCD时需要确认是否配置除GND和VCC引脚外其余五个引脚,本模块采用的是软件模拟i2c时序来驱动LCD显示屏。重点:i2c通信协议。
2025-04-15 11:39:10
686
原创 openbmc & cmake原理解析
该systemd服务单元文件的作用是启动一个名为的服务,确保它在和服务之前启动,并且在之后启动。服务的启动命令是,并且配置为在服务失败时自动重启。服务将在系统进入时被启动。这个 CMake 配置文件的目的是构建一个名为的 C++ 项目。它包括了以下几个方面:设置了 CMake 的最低版本和项目名称。指定了项目的源代码文件。配置了编译器头文件搜索路径。创建了一个可执行文件并链接了必要的库。启用了 CPack 来便于打包和发布项目。在执行cmake构建时,CMake 将会:根据SRC_LIST。
2025-04-15 11:37:29
901
原创 MCU专题精讲-USART
通用同步异步收发器(USART)提供了一个灵活方便的串行数据交换接口,数据帧可以通过全双工或半双工,同步或异步的方式进行传输。USART提供了可编程的波特率发生器,能对系统时钟进行分频产生USART发送和接收所需的特定频率。USART不仅支持标准的异步收发模式,还实现了一些其他类型的串行数据交换模式,如红外编码规范,SIR,智能卡协议,LIN,半双工以及同步模式。它还支持多处理器通信和Modem流控操作(CTS/RTS)。数据帧支持从LSB或者MSB开始传输。数据位的极性和TX/RX引脚都可以灵活配置。
2025-04-15 11:34:28
809
原创 MCU专题精讲-GPIO
GPIO就是通用I/O引脚,包括为 PA0 ~ PA15,PB0 ~ PB15,PC0 ~ PC15, PD0 ~ PD15等,最多支持112个引脚。各片上设备用其来实现逻辑输入/ 输出功能。外设 GPIO 引 脚上的外部中断在中断/事件控制器(EXIT)中有相关的控制和配置寄存器。每个 GPIO 引脚可以由软件或硬件配置为输出(推挽或开漏)、输入、或者模拟模式。所有的 GPIO 引脚都具备大电流驱动能力。
2025-04-15 11:33:35
1048
原创 GD32 LED模块总结
对于一块新的开发板,我个人的学习方式是首先观察开发板上的各模块的名称和引脚序号,接着搭配着开发板的原理图一起学习,基本熟悉开发板上的各个部件的位置后,第二步是在keil5中打开工程开始熟悉软件部分,主要是参考的是GD32F303的固件库中的工程文件。然后把工程文件中LED的相关配置,列如GPIO的引脚和初始化、LED使能控制引脚等,按照进行编写、学习和修改。在修改好相对应的引脚后,再配置软件运行的环境,列如芯片的型号等,最后进行编译烧录。
2025-04-15 11:27:12
912
原创 GD32 I2C对EEPROM读写操作
首先,I2C总线是一条串行总线,有两条总线,一条是SDA(数据线)一条是SCL(时钟线),学习了I2C的通信协议,数据的发送、接收过程。EEPROM(电可擦除可编程只读存储器)是一种掉电后数据也不丢失的寄存器,掌握了通过I2C对EEPROM读写的流程,按照流程编写了各个初始化函数,通过读写函数和主函数进行对其进行测试,测试结果如上。
2025-04-15 11:25:29
461
原创 单片机开发中BOOT区和APP区总结
在 MCU 升级完成或者是在一定时间内未收到升级请求,需要从 BOOT 跳转至 APP,执行用户程序功能,但在执行 APP 程序前,首先需要验证 APP 程序是否有效(比如擦除后烧写失败则APP程序不完整,在 APP 执行中会出错),才能进行跳转。分区,给 BOOT 和 APP 预留足够 ROM 空间,使两个程序可以互相独立运行,就必须先进行 ROM 内存分配,为BootLoader 预留足够的空间,避免BootLoader程序编译后的固件大小超出所属空间,从而影响用户程序(APP)区。
2023-05-31 11:41:46
8054
2
原创 GD32调试串口收发的两种方式(附代码注释超详细版)
* TX发送的数据 *//* TX发送数据长度 *//*发送数据长度,__IO类似volatile,随时可变 *//* RX接收数组定长 *//* RX需要接收长度 *//* 实际接收长度 *//* 串口重定向C语言printf */return ch;/* 串口重定向C语言getchar、scanf */return ch;/* 设置波特率 */
2023-04-20 15:05:08
6299
1
原创 串口通信(自学笔记)
1.通信结构 设备内部一般使用TTL电平传输,设备之间使用RS232/RS485电平标准传输。TTL : 短距离传输。逻辑1:2.4V~5V ;逻辑0:0V~0.5VRS232/RS485 : 距离较长。 RS232: 1:-15V~3V ;0:3V~15V串口参数:(1)波特率(常见 4800、9600、115200)每秒传输的位 (2)起始位 (硬件产生,无需配置) (3)停止位
2023-04-18 15:52:09
625
1
原创 网络编程socket、数据结构、网络协议
2,connect连接服务器套接字(指定服务器ip和端口号)blind ( " ip地址 ", 端口号);2,绑定套接字(指定ip和端口号)3,listen(进入监听状态)4,accept接受客户端请求。1,建立socket套接字。1,建立socket套接字。
2022-10-12 14:18:53
1337
原创 c++ 实现两个长整型相乘思路
思路: 1.数据较大, 采用两个字符串型的数组装填输入的长整型数据。 2.相乘的时候总是先采用其中一个乘数的个位依次乘另一个的个位到高位。 3.将输入的字符串倒叙放入数组中(for循环逆置,字符型的数字转整型数字需要 -' 0 ' 或者 - (int )48 ) 4.每一列依次相乘相加,需要在未对齐的数字补0 (设置一个补位变量=0) 5.将相乘的上面的中间结果值放入另一个新的数组中,按位相乘。 下面的中间结果值for循环在前面加0
2022-10-12 10:42:16
890
原创 个人总结面试笔试C语言、嵌入式相关基础知识点
TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。//char *()(int **p)-->c数组中每一个元素都是函数指针 其所指向的函数的返回值是char*类型 函数带一个指向指针的指针的参数。4. next 是一个函数指针 指向一个没有参数的函数,该函数的返回值是一个指针,该指针指向的是一个类型为char的常量指针。char (*p);
2022-10-08 16:17:22
710
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人