硬汉嵌入式论坛

 找回密码
 立即注册
查看: 946|回复: 3
收起左侧

[STM32CubeF4] TIM-IC+DMA 功能

[复制链接]

25

主题

58

回帖

133

积分

初级会员

积分
133
发表于 2024-6-4 09:17:22 | 显示全部楼层 |阅读模式
本帖最后由 wxqhit 于 2024-6-4 10:46 编辑

如标题:
我现在想用F407 带一个并口AD
控制逻辑是想 通过TIM 的捕捉功能,获取ADC的数据状态,然后通过 捕捉 触发DMA 把 并口的数据写入内存指定的数组内

昨天看了一下官方的历程;都是hal库做的。
STM32Cube_FW_F4_V1.28.0 是最新的版本
1.bmp
我就在这个历程里面的
2.bmp
文件里面找到了,一个关于tim 捕捉 产生 DMA的函数,但是这个函数里面内波默认了一个外设寄存器P,就是输入捕捉寄存器,只提供了一个M(内存Mem)的参数;



这个函数体内部使用了
3.bmp
这个函数;
4.bmp
有人试过没有,是否可以换一个外部寄存器GPIO的,就可以实现用通过TIM的IC 触发DMA功能从GPIO寄存器读取到内部memory。

或者,按照这个历程,写一个类似的函数;只是修改内部的寄存器把
(uint32_t)&htim->Instance->CCR1  修改为一个其他的GOIO  GPIO port input data register (GPIOx_IDR)

不知道是否可行?@@eric2013

如果不行,我就要回到用std标准库,来实现,

请教一下,那位有比较全的F4 标准库的历程。

谢谢大家!


工程文件

工程文件

函数名

函数名

函数体

函数体

历程文件夹

历程文件夹

tim dma 历程

tim dma 历程
回复

使用道具 举报

25

主题

58

回帖

133

积分

初级会员

积分
133
 楼主| 发表于 2024-6-4 10:49:59 | 显示全部楼层
补充一下函数体,截图不清晰
/**
  * @brief  Starts the TIM Input Capture measurement in DMA mode.
  * @param  htim TIM Input Capture handle
  * @param  Channel TIM Channels to be enabled
  *          This parameter can be one of the following values:
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
  * @param  pData The destination Buffer address.
  * @param  Length The length of data to be transferred from TIM peripheral to memory.
  * @retval HAL status
  */
HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length)


这个函数的内部调用了一个DMA的API函数
      /* Enable the DMA stream */
      if (HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData,
                           Length) != HAL_OK)
      {
        /* Return error status */
        return HAL_ERROR;
      }

就是想把这个换掉。。。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-6-4 15:38:44 | 显示全部楼层
这个有个现成的例子可以参考,我之前弄AD7606搞得

https://www.armbbs.cn/forum.php?mod=viewthread&tid=93255&extra=page%3D1


23.png
回复

使用道具 举报

25

主题

58

回帖

133

积分

初级会员

积分
133
 楼主| 发表于 2024-6-4 20:13:03 | 显示全部楼层
收到,谢谢@eric2013
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-26 04:56 , Processed in 0.521990 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表