- 博客(11)
- 收藏
- 关注
原创 I2C通信配置和使用详解
摘要:I2C是一种双线同步半双工串行总线,采用开漏输出和上拉电阻控制电平,支持多设备组网。通信通过SCL时钟同步,SDA数据线在SCL低电平时跳变。传输以起始信号(SDA高→低)开始,结束信号(SDA低→高)终止,接收方需发送ACK应答。总线仲裁机制确保多主机竞争时低电平优先。典型应用包括读取LM75温度传感器,通过硬件地址引脚(A2/A1/A0)确定从机地址(如0x48),软件指定寄存器地址(0x00为温度寄存器)。通信过程需处理中断标志和时钟同步握手。
2026-03-31 20:39:45
179
原创 ARM定时器配置
本文展示了GPT1定时器的初始化配置和使用方法。首先通过gpt1_reset()函数复位定时器,然后配置控制寄存器(CR)设置自由运行模式、时钟源为外设时钟,并禁用捕获功能。接着配置预分频寄存器(PR)实现66分频。最后提供了精确的微秒级(delay_us)和毫秒级(delay_ms)延时函数实现,通过读取计数器值(CNT)计算经过的时间。整个配置过程展示了如何通过寄存器操作实现定时器功能,为嵌入式系统提供精确的时间控制能力。
2026-03-27 17:11:24
35
原创 ARM中断处理流程
本文介绍了基于ARM Cortex-A7处理器的中断系统实现方法。主要内容包括:1) 通过协处理器配置启用指令缓存并设置异常向量表基地址为0x87800000;2) GIC中断控制器初始化流程,包括重映射向量表地址和配置CPU接口;3) 具体的中断处理机制实现,包括保存现场、获取中断号、切换处理器模式、调用中断服务程序以及中断结束处理等步骤;4) 以GPIO按键中断为例,详细说明了中断源的配置方法,包括设置中断触发方式、使能中断和设置优先级等关键操作。整个系统实现了从中断触发到处理完成的完整流程,为嵌入式系
2026-03-25 21:27:27
206
原创 面试题刷题日记
二者最关键的区别在于并行实现机制:SIMD 是数据并行,SIMT 是线程并行。A 选项:错误。指针大小由系统寻址位数决定(32 位系统为 4 字节,64 位系统为 8 字节),而int类型大小通常为 4 字节,二者并不始终相等。B 选项:错误。指针传递时本质是传递地址副本,可通过指针修改原对象;引用传递时本质是原对象的别名,语法更简洁,但二者底层实现和语法约束(如引用必须初始化、不可为 null)存在差异,行为并非完全相同。C 选项:错误。:分配1 个 int大小的内存,并初始化为 10。:分配。
2026-03-24 19:34:00
11
原创 计算机网络基础及网络编程
本文介绍了网络通信中的关键概念和技术实现。首先解释了OSI七层模型和TCP/IP四层模型的结构与功能差异,详细分析了各层的职责。然后重点讲解了UDP和TCP协议的特点及编程实现:UDP无连接不可靠但延迟低,TCP面向连接可靠但开销大。文章提供了两种协议的完整代码示例,包括基础通信、文件传输和聊天室功能实现。 在高级应用部分,文章介绍了HTTP协议的工作原理,并给出了通过TCP模拟HTTP请求获取天气预报的代码实现。最后深入讲解了三种I/O多路复用技术(select、poll、epoll),对比了它们的性能特
2026-03-12 23:23:58
237
原创 进程间通信
本文总结了三种进程间通信(IPC)方式:管道、信号和共享内存。管道分为无名管道(pipe)和有名管道(fifo),无名管道只能用于有亲缘关系的进程间通信,而有名管道可用于任意进程。信号通信是异步的,可通过kill、raise等函数发送信号,并通过signal函数处理信号。共享内存是效率最高的IPC方式,通过shmget申请共享内存,shmat映射到进程空间,shmdt撤销映射,shmctl删除对象。文中还提供了具体实现示例,包括父子进程通信、查字典功能和基于fifo的聊天室实现。
2026-03-01 11:39:14
575
原创 线程控制:互斥与同步
本文介绍了多线程编程中的互斥和同步机制。互斥通过互斥锁(pthread_mutex_t)实现临界资源的排他性访问,包括锁的初始化、加锁、解锁和销毁等操作流程。同步则通过信号量(sem_t)控制线程执行的先后顺序,详细说明了无名信号量的初始化、PV操作(sem_wait/sem_post)和销毁过程。文章通过代码示例演示了互斥锁保护共享变量和信号量实现线程顺序控制的具体应用,同时指出当信号量初始值大于1时也可用于资源计数和互斥控制。这些机制是多线程编程中避免竞态条件和确保执行顺序的重要工具。
2026-02-26 20:50:25
757
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅