硬汉嵌入式论坛

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

[ADC] 两个奇怪的,无法理解的问题,与AD有关。。

[复制链接]

50

主题

68

回帖

218

积分

高级会员

积分
218
发表于 2021-8-14 16:48:55 | 显示全部楼层 |阅读模式
我用的F743,开启了定时器4的UPDATA信号触发AD采样,结果通过DMA传送给数组。奇怪现象:
1. 原来与HAL_ADC_ConvCpltCallback回调函数在同一个文件中存在个函数,这个函数即使我没有调用,只是写在那里,那么DMA中断将无法进入(使用了DMA1_Stream0_IRQHandler,DMA1_Stream1_IRQHandler这2个中断)。但如果我重新创建一个文件来放置这个函数,在不在回调函数里调用,都不会影响AD,AD采样都正常。
2. 如果没有开启SPI4功能(没有调用如下的初始化函数),不影响AD采样,如果开启了SPI4,AD就无法进入DMA中断了。即使SPI4的初始化函数配置并没有生效(如下),也会影响AD无法进入中断。。

void MX_SPI4_Init(void)
{

  hspi4.Instance = SPI4;
  hspi4.Init.Mode = SPI_MODE_MASTER;
  hspi4.Init.Direction = SPI_DIRECTION_2LINES_TXONLY;
  hspi4.Init.DataSize = SPI_DATASIZE_8BIT;
  hspi4.Init.CLKPolarity = SPI_POLARITY_LOW;
  hspi4.Init.CLKPhase = SPI_PHASE_1EDGE;
  hspi4.Init.NSS = SPI_NSS_SOFT;
  hspi4.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
  hspi4.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi4.Init.TIMode = SPI_TIMODE_DISABLE;
  hspi4.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  hspi4.Init.CRCPolynomial = 0x0;
  hspi4.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
  hspi4.Init.NSSPolarity = SPI_NSS_POLARITY_LOW;
  hspi4.Init.FifoThreshold = SPI_FIFO_THRESHOLD_01DATA;
  hspi4.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
  hspi4.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
  hspi4.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_00CYCLE;
  hspi4.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_00CYCLE;
  hspi4.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE;
  hspi4.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_DISABLE;
  hspi4.Init.IOSwap = SPI_IO_SWAP_DISABLE;
//  if (HAL_SPI_Init(&hspi4) != HAL_OK)
//  {
//    Error_Handler();
//  }

}


注意红色部分,虽然配置了hspi4对象,但没有INIT,实际上配置应该无效的。。。。百思不得其解,请高手解答,谢谢。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-8-14 16:57:17 | 显示全部楼层
STM32F743? 没听说过这个型号。
回复

使用道具 举报

50

主题

68

回帖

218

积分

高级会员

积分
218
 楼主| 发表于 2021-8-14 20:53:18 来自手机 | 显示全部楼层
eric2013 发表于 2021-8-14 16:57
STM32F743? 没听说过这个型号。

说错了,是stm32h743
回复

使用道具 举报

50

主题

68

回帖

218

积分

高级会员

积分
218
 楼主| 发表于 2021-8-15 07:37:39 来自手机 | 显示全部楼层
有人知道原因吗??实在查不出问题…难道h743或者mfk有bug??
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-8-15 07:47:30 | 显示全部楼层
perfect_co 发表于 2021-8-15 07:37
有人知道原因吗??实在查不出问题…难道h743或者mfk有bug??

mfk ?

这种问题,不出意外的话,程序里面应该存在隐含的bug。楼主的两个问题仅是表面现象。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 07:06 , Processed in 0.154106 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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