- 博客(14)
- 收藏
- 关注
原创 UART协议:完整教程
UART(Universal Asynchronous Receiver-Transmitter,通用非同步收发器)是嵌入式系统中最常用的串行通信协议之一。它通过TX(传输)和RX(接收)两根线实现全双工通信,广泛应用于设备之间的数据传输。本文将详细介绍UART协议的基本原理、硬件连接、软件实现以及实际应用,帮助读者全面掌握UART的使用方法。为了提高系统的效率,可以使用中断处理UART的发送和接收。停止位:表示数据传输的结束,通常为1位或2位。数据位:通常为8位,但也可以是7位或9位。
2025-02-06 16:35:24
845
原创 使用IIC协议
它通过两根总线(SCL和SDA)实现多个设备之间的通信,具有节省I/O端口、通信效率高和硬件实现简单的特点。由于IIC总线是开放式的,需要在SCL和SDA线上各加一个上拉电阻(通常为4.7kΩ或10kΩ),以确保总线的稳定性。通信失败:检查SCL和SDA线是否正确连接,确认从设备地址是否正确。起始位:主设备通过SDA线从高电平拉低,表示通信开始。结束位:主设备通过SDA线从低电平拉高,表示通信结束。主设备-从设备模式:主设备发起通信,从设备响应。从设备地址:主设备发送7位或10位的从设备地址。
2025-02-06 16:28:05
852
原创 【USB基础描述符】
在每一个USB设备内部,包含了固定格式的数据,通过这些数据,USB主机就可以获取USB设备的类型、生产厂商等信息。标准的USB设备有5种USB描述符:设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符。Bit6-4,保留。bInterval : 轮训数据传送端点的时间间隔.对于批量传送和控制传送的端点忽略.对于同步传送的端点,必须为1,对于中断传送的端点,范围为1-255。wTotalLength : 返回整个数据的长度,指此配置返回的配置描述符,接口描述符以及端点描述符的全部大小。
2024-12-25 17:28:07
735
原创 STM32 不同时钟频率的影响
指令执行时间:最终的代码都会转化为指令,去由CPU去执行,这些指令的执行需要时钟周期,不同时钟周期在不同频率下所用时间不同,具体时间受时钟频率,内核架构不同收到影响,理解时钟频率:单片机的时钟频率表示的是每秒钟时钟信号的周期数,通常以(hz)为单位,8Mhz意味着每秒钟有 8000,000个时钟周期。执行指令:指令的执行分为,取指,解码,执行,返回结果,而时钟信号为这些步奏,提供了时间基准,能过准确的执行指令。
2024-12-16 10:55:59
286
原创 SPI的一些相关知识
数据传输:MOSI和MISO是用来传输数据的,使用SCK进行信号同步,数据传输时在每一个时钟周期传输一位数据,并且数据输入和输出是同时进行的。这样的话SPI的四种模式的时序图就变得简单易懂了,如果你不知道数据传出的时序的话,可以这样理解:在时钟信号发生高低电平转换的时候,数据的传输是不允许的,只有在SCLK在为非空闲状态的时候才可以进行数据的传输。分别是SCL(时钟信号),MOSI(主机输出,从机输入),MISO(主机输入,从机输出),/SS(片选线,器件使能信号,由主机控制)SPI的四种工作模式。
2024-12-16 10:52:13
142
原创 【SPI总线NSS总结】
这种情况下在使用DMA刷屏的时候不需要管SPI引脚的操作,会省掉许多麻烦,如开启DMA后何时拉高片选脚,cpu只能通过等待、查询、或者中断中去操作片选脚。SPI_NSS_Soft软件模式即为:通过控制IO口来把CS置低置高,发送数据时候,通过IO口把CS拉低,发送完成后拉高,优点可以连接多个从机。SPI_NSS_Hard硬件模式即为:SPI自动控制CS片选信号,发送数据自动拉低电平,不发送维持高电平,弊端只能连接一个从机。配置为SPI_NSS_Hard时,片选脚只能选择固定的外设脚。
2024-12-16 10:47:15
440
原创 【C语言全局变量总结---踩过的坑】
4.在函数里面开个静态的全局变量,全局数组,是不占用栈空间的。只是有些编译器对于大块的全局数组,会放到和一般变量不同的地址区。2.尽量把变量的作用范围控制在使用它的模块里面,如果其他模块要访问,就开个读或写函数接口出来,严格控制访问范围。3.当一个模块里面的全局变量超过3个(含)时,就用结构体包起来吧。要归0便一起归0,省得丢三落四的。1.全局变量是不可避免要用到的,每一个设备底层几乎都需要它来记录当前状态,控制时序,起承转合。
2024-12-05 22:54:03
179
原创 USB配置描述符总结
USB配置描述符(Configuration Descriptor)是USB设备的标准描述符之一,它提供了关于设备的特定配置的详细信息。一个USB设备可以有一个或多个配置描述符,每个描述符都包含了设备在该配置下的接口数量、供电模式、最大功耗以及其他重要属性。功耗: bMaxPower字段告诉主机设备在该配置下的最大功耗,这对于确保设备不会超过主机能提供的功率非常重要。配置描述符是USB设备枚举过程中的关键部分,它们帮助主机了解设备的能力,并据此进行适当的配置。bLength: 描述符的长度,通常为9字节。
2024-12-05 22:42:40
287
原创 【USB枚举过程-----详细解析过程】
PC 向address 0发送USB协议规定的GET_DESCRIPTOR命令获取设备描述符,以取得缺省控制管道所支持的最大数据包长度,并在有限的时间内等待USB设备的响应。当集线器释放了重启状态,设备就处于默认状态了,设备已经准备好通过Endpoint 0 的默认流程响应控制传输,即设备现在使用默认地址0x0与主机通信。此时,USB设备处于加电状态,它所连接的端口是无效的。主机向新地址重新发送GET_DESCRIPTOR命令,此次读取其设备描述符的全部字段,以了解该设备的总体信息,如VID,PID。
2024-12-05 22:39:10
851
原创 Spring 常见的元注解的作用(一)
注解在类上,自动写好实例的set,get,hashCode,toString等方法。实现数据库表属性和某一实例对象(名字不一样或者不是驼峰命名关系)相关联。实现实体类和对应的数据库表名相映射。对时间类型的属性标注格式化注解。标注该层为service层。
2022-10-09 16:25:52
180
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人