wdliming

  • 2020-05-26
  • 点评了资料: 时间触发嵌入式系统设计模式源码

  • 2020-05-17
  • 回复了主题帖: [MsgOS]源码更新20160623

    谢谢分享

  • 2020-05-08
  • 回复了主题帖: [MsgOS]发个自己写的cortex-m单片机专用的操作系统

    为啥不加精品,不推广。好不容易找到这里的

  • 回复了主题帖: [MsgOS]——by 科技猎人

    谢谢分享~~~有缘人

  • 2019-11-12
  • 回复了主题帖: STM32CubeProgrammer 这个烧写软件不错呢,大家都用过吗?

    谢谢分享~~~~

  • 2019-09-20
  • 点评了资料: STM32F429开发指南-HAL库版本_V1.1.pdf

  • 2019-09-18
  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    huo_hu 发表于 2019-9-18 16:57 stm32的通道寄存器是地址连续的,所以dma不需要配置成两个,调整一下数据类型,每次dma传两个通道就行了. & ...
    这样啊,那我还是用两个定时器去采样频率吧

  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    littleshrimp 发表于 2019-9-18 16:29 再试试硬件上把两个通道连接在一起 通过读取GPIO的方式确定信号已经正确传入单片机
    我感觉f103只能使用一个通道了。因为他有触发条件,只能选择tf1或tf2,如果不是pwm输入模式,那么测试周期就只能一个通道。

  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    littleshrimp 发表于 2019-9-18 15:05 //你把     htim5.State = HAL_TIM_STATE_READY; //放在     HAL_TIM_IC_Sta ...
    还是没有成功。。

  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    littleshrimp 发表于 2019-9-18 15:05 //你把     htim5.State = HAL_TIM_STATE_READY; //放在     HAL_TIM_IC_Sta ...
    好的 我试试看!!

  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    请帮忙看下,谢谢~~  

  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    littleshrimp 发表于 2019-9-18 13:41 tim srart代码怎么写的?
    dma默认开启中断的, 然后我tim5也开启中断了。 dma模式是normal模式,在任务中,每隔1000ms调用下面的两个函数: void Water_PWM_Detect_Enable(void) {     HAL_TIM_IC_Start_DMA(&htim5, TIM_CHANNEL_1, (uint32_t *)cp1, 2);     htim5.State = HAL_TIM_STATE_READY; } void FUEL_PWM_Detect_Enable(void) {     HAL_TIM_IC_Start_DMA(&htim5, TIM_CHANNEL_2, (uint32_t *)cp2, 2);     htim5.State = HAL_TIM_STATE_READY; } 如果分开两个定时器去做,是可以的,但是想集中在一个定时器,现在就不行,不知道是mx配置哪里出错? 我现在只是采样两个通道的频率,不去QQ占空比的,trigger source应该怎么填写?如果填写TI1FP1的话,就只能触发通道1是吗?? 楼主我看你配置都是disable的。

  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    littleshrimp 发表于 2019-9-18 13:41 tim srart代码怎么写的?
    /* TIM5 init function */ void MX_TIM5_Init(void) {     TIM_ClockConfigTypeDef sClockSourceConfig = {0};     TIM_SlaveConfigTypeDef sSlaveConfig = {0};     TIM_MasterConfigTypeDef sMasterConfig = {0};     TIM_IC_InitTypeDef sConfigIC = {0};     htim5.Instance = TIM5;     htim5.Init.Prescaler = 71;     htim5.Init.CounterMode = TIM_COUNTERMODE_UP;     htim5.Init.Period = 65535;     htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;     htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;     if (HAL_TIM_Base_Init(&htim5) != HAL_OK)     {         Error_Handler();     }     sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;     if (HAL_TIM_ConfigClockSource(&htim5, &sClockSourceConfig) != HAL_OK)     {         Error_Handler();     }     if (HAL_TIM_IC_Init(&htim5) != HAL_OK)     {         Error_Handler();     }     sSlaveConfig.SlaveMode = TIM_SLAVEMODE_RESET;     sSlaveConfig.InputTrigger = TIM_TS_TI1FP1;     sSlaveConfig.TriggerPolarity = TIM_INPUTCHANNELPOLARITY_RISING;     sSlaveConfig.TriggerFilter = 0;     if (HAL_TIM_SlaveConfigSynchro(&htim5, &sSlaveConfig) != HAL_OK)     {         Error_Handler();     }     sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;     sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;     if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)     {         Error_Handler();     }     sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;     sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;     sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;     sConfigIC.ICFilter = 0;     if (HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)     {         Error_Handler();     } }

  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    littleshrimp 发表于 2019-9-18 13:41 tim srart代码怎么写的?
    void Water_PWM_Detect_Enable(void) {     HAL_TIM_IC_Start_DMA(&htim5, TIM_CHANNEL_1, (uint32_t *)cp1, 2);     htim5.State = HAL_TIM_STATE_READY; } void FUEL_PWM_Detect_Enable(void) {     HAL_TIM_IC_Start_DMA(&htim5, TIM_CHANNEL_2, (uint32_t *)cp2, 2);     htim5.State = HAL_TIM_STATE_READY; }

  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    本帖最后由 wdliming 于 2019-9-18 12:47 编辑
    littleshrimp 发表于 2019-9-18 12:45 两个图的trigger source怎么不一样
    而且是安照你的配置,我参考了,也是不行。不知为什么??

  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    littleshrimp 发表于 2019-9-18 12:45 两个图的trigger source怎么不一样
    我试了两种方式,都不行的

  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    还是说要这么配置?? dma我都是这么配置的 请问这么到底是怎么配置的,今天实验了不行了。奇怪

  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    请问这么配置可以吗??我是F103的

  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    今天我实验了,有不行了。很奇怪。

  • 2019-09-17
  • 回复了主题帖: 为什么用STM32的TIMER捕获 DMA只有一个通道有数据

    本帖最后由 wdliming 于 2019-9-17 17:16 编辑
    littleshrimp 发表于 2019-9-17 14:41 这样可以,其实如果执行完HAL_TIM_IC_Start_DMA后不需要再配置State = HAL_TIM_STATE_READY ...
    首先谢谢分享,已经按照楼主的方法,每隔100ms开启测试一次频率,即每隔100ms调用一次 HAL_TIM_IC_Start_DMA(&htim2,TIM_CHANNEL_2,cp2,10);   htim2.State = HAL_TIM_STATE_READY;   HAL_TIM_IC_Start_DMA(&htim2,TIM_CHANNEL_1,cp1,10);   htim2.State = HAL_TIM_STATE_READY; 可以采样了。

最近访客

< 1/1 >

统计信息

已有113人来访过

  • 芯币:56
  • 好友:--
  • 主题:5
  • 回复:123
  • 课时:--
  • 资源:--

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言