jcky001 发表于 2024-9-19 16:20

STM32G070 I2C HAL库函数疑问

函数HAL_I2C_Slave_Seq_Transmit_IT和HAL_I2C_Slave_Seq_Receive_IT实现代码里有处理DMA请求,这是出于什么考虑?求解答!

classroom 发表于 2024-9-20 11:22

为了提高数据传输效率、简化代码逻辑并支持高速数据传输。

ym0sly 发表于 2024-9-23 18:51

实现代码里有处理DMA

szt1993 发表于 2024-9-23 19:10

利用硬件DMA进行传输数据速率快

o88ne 发表于 2024-9-29 23:11

HAL_I2C_Slave_Seq_Transmit_IT

一只眠羊 发表于 2024-11-6 10:06

在I2C通信中,使用DMA(直接内存访问)请求是为了提高数据传输的效率和减少CPU的负担

未说出口的像你 发表于 2024-11-7 01:00

当数据量较大时,使用DMA可以避免CPU频繁地处理数据传输任务,从而释放CPU资源用于其他任务

在曼谷的春 发表于 2024-11-7 02:00

DMA可以在硬件级别上直接进行数据传输,减少了CPU的干预,从而提高了数据传输的速度和效率

我吃小朋友 发表于 2024-11-7 03:00

在I2C通信中,数据传输通常伴随着中断。使用DMA可以减少中断处理的复杂性,因为DMA可以自动处理数据传输,而不需要CPU在中断服务程序中手动处理数据

月亮一键变蓝 发表于 2024-11-7 04:00

函数HAL_I2C_Slave_Seq_Transmit_IT和HAL_I2C_Slave_Seq_Receive_IT中的“Seq”表示连续传输。使用DMA可以更好地支持连续数据传输,确保数据传输的连续性和稳定性

失物招領 发表于 2024-11-7 05:00

使用DMA可以简化编程,因为开发者不需要手动管理数据传输的细节,而是可以通过配置DMA来实现自动化的数据传输

她已醉 发表于 2024-11-7 06:00

使用DMA请求在I2C通信中是为了提高数据传输的效率、减少CPU负担、简化编程,并支持连续数据传输

将爱藏于深海 发表于 2024-11-7 07:00

通过合理配置和使用DMA,可以显著提升系统的性能和响应速度

春日负喧 发表于 2024-11-7 08:00

中断操作,不就是为了快速提高传输速率吗

温室雏菊 发表于 2024-11-7 09:00

一般来说,是为了降低CPU占用率,这种就是DMA的特色

yellow555 发表于 2024-11-8 21:03

实现代码里有处理DMA请求

公羊子丹 发表于 2025-1-24 17:08

这是为了提高数据传输效率,DMA可以自动传输数据,减少CPU的参与,尤其是在数据量大的时候更明显。

周半梅 发表于 2025-1-24 17:09

HAL库的设计就是尽量支持多种模式,像中断模式、DMA模式都有,方便用户根据需求选择。

帛灿灿 发表于 2025-1-24 17:11

如果不用DMA,纯靠中断处理大数据量的I2C通信,CPU负载会很高,可能会影响系统实时性。

童雨竹 发表于 2025-1-24 17:12

STM32的HAL库里很多外设都支持DMA,像UART、SPI、I2C这种,默认都会预留对DMA的支持。
页: [1] 2
查看完整版本: STM32G070 I2C HAL库函数疑问