打印
[STM32G0]

STM32G070 I2C HAL库函数疑问

[复制链接]
1224|29
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2024-9-19 16:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
函数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进行传输数据速率快

使用特权

评论回复
5
o88ne| | 2024-9-29 23:11 | 只看该作者
HAL_I2C_Slave_Seq_Transmit_IT

使用特权

评论回复
6
一只眠羊| | 2024-11-6 10:06 | 只看该作者
在I2C通信中,使用DMA(直接内存访问)请求是为了提高数据传输的效率和减少CPU的负担

使用特权

评论回复
7
未说出口的像你| | 2024-11-7 01:00 | 只看该作者
当数据量较大时,使用DMA可以避免CPU频繁地处理数据传输任务,从而释放CPU资源用于其他任务

使用特权

评论回复
8
在曼谷的春| | 2024-11-7 02:00 | 只看该作者
DMA可以在硬件级别上直接进行数据传输,减少了CPU的干预,从而提高了数据传输的速度和效率

使用特权

评论回复
9
我吃小朋友| | 2024-11-7 03:00 | 只看该作者
在I2C通信中,数据传输通常伴随着中断。使用DMA可以减少中断处理的复杂性,因为DMA可以自动处理数据传输,而不需要CPU在中断服务程序中手动处理数据

使用特权

评论回复
10
月亮一键变蓝| | 2024-11-7 04:00 | 只看该作者
函数HAL_I2C_Slave_Seq_Transmit_IT和HAL_I2C_Slave_Seq_Receive_IT中的“Seq”表示连续传输。使用DMA可以更好地支持连续数据传输,确保数据传输的连续性和稳定性

使用特权

评论回复
11
失物招領| | 2024-11-7 05:00 | 只看该作者
使用DMA可以简化编程,因为开发者不需要手动管理数据传输的细节,而是可以通过配置DMA来实现自动化的数据传输

使用特权

评论回复
12
她已醉| | 2024-11-7 06:00 | 只看该作者
使用DMA请求在I2C通信中是为了提高数据传输的效率、减少CPU负担、简化编程,并支持连续数据传输

使用特权

评论回复
13
将爱藏于深海| | 2024-11-7 07:00 | 只看该作者
通过合理配置和使用DMA,可以显著提升系统的性能和响应速度

使用特权

评论回复
14
春日负喧| | 2024-11-7 08:00 | 只看该作者
中断操作,不就是为了快速提高传输速率吗

使用特权

评论回复
15
温室雏菊| | 2024-11-7 09:00 | 只看该作者
一般来说,是为了降低CPU占用率,这种就是DMA的特色

使用特权

评论回复
16
yellow555| | 2024-11-8 21:03 | 只看该作者
实现代码里有处理DMA请求

使用特权

评论回复
17
公羊子丹| | 2025-1-24 17:08 | 只看该作者
这是为了提高数据传输效率,DMA可以自动传输数据,减少CPU的参与,尤其是在数据量大的时候更明显。

使用特权

评论回复
18
周半梅| | 2025-1-24 17:09 | 只看该作者
HAL库的设计就是尽量支持多种模式,像中断模式、DMA模式都有,方便用户根据需求选择。

使用特权

评论回复
19
帛灿灿| | 2025-1-24 17:11 | 只看该作者
如果不用DMA,纯靠中断处理大数据量的I2C通信,CPU负载会很高,可能会影响系统实时性。

使用特权

评论回复
20
童雨竹| | 2025-1-24 17:12 | 只看该作者
STM32的HAL库里很多外设都支持DMA,像UART、SPI、I2C这种,默认都会预留对DMA的支持。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1546

主题

4961

帖子

6

粉丝