打印
[STM32U5]

AD和串口合起来的问题

[复制链接]
1809|37
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 比神乐 于 2023-3-8 20:27 编辑

本来我想用串口打印热敏电阻的值。
我在例程UART里改的,加入AD例程里的代码。
后来发现:
static void MX_ADC1_Init(void)
{

  /* USER CODE BEGIN ADC1_Init 0 */

  /* USER CODE END ADC1_Init 0 */

  ADC_ChannelConfTypeDef sConfig = {0};

  /* USER CODE BEGIN ADC1_Init 1 */

  /* USER CODE END ADC1_Init 1 */

  /** Common config
  */
  hadc1.Instance = ADC1;
  hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV4;
  hadc1.Init.Resolution = ADC_RESOLUTION_12B;
  hadc1.Init.GainCompensation = 0;
  hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
  hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
  hadc1.Init.LowPowerAutoWait = DISABLE;
  hadc1.Init.ContinuousConvMode = DISABLE;
  hadc1.Init.NbrOfConversion = 1;
  hadc1.Init.DiscontinuousConvMode = DISABLE;

        hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
  hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
  hadc1.Init.DMAContinuousRequests = DISABLE;
  hadc1.Init.TriggerFrequencyMode = ADC_TRIGGER_FREQ_HIGH;
  hadc1.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN;
  hadc1.Init.LeftBitShift = ADC_LEFTBITSHIFT_NONE;
  hadc1.Init.ConversionDataManagement = ADC_CONVERSIONDATA_DR;
  hadc1.Init.OversamplingMode = DISABLE;
  if (HAL_ADC_Init(&hadc1) != HAL_OK)
  {
    //Error_Handler();
  }

  /** Configure Regular Channel
  */
  sConfig.Channel = ADC_CHANNEL_9;
  sConfig.Rank = ADC_REGULAR_RANK_1;
  sConfig.SamplingTime = ADC_SAMPLETIME_391CYCLES_5;
  sConfig.SingleDiff = ADC_SINGLE_ENDED;
  sConfig.OffsetNumber = ADC_OFFSET_NONE;
  sConfig.Offset = 0;
  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN ADC1_Init 2 */

  /* USER CODE END ADC1_Init 2 */

}
if (HAL_ADC_Init(&hadc1) != HAL_OK)
{
//Error_Handler();
}
如果把Error_Handler();注释掉,串口可以打印出数据,当然不是正确的AD值。如果不注释掉,串口发不出数来。
请问高手,为什么初始化失败呢?两个代码我对照了好半天,也没发现问题在哪?
谢谢!

使用特权

评论回复
沙发
朝生| | 2023-3-9 11:34 | 只看该作者
ADC初始化失败呗,是不是有些配置没打开?

使用特权

评论回复
板凳
LLGTR| | 2023-3-9 11:34 | 只看该作者
调试看看哪个地方跳出报错。

使用特权

评论回复
地板
天天向善| | 2023-3-9 11:34 | 只看该作者
ADC的硬件通道没打开吧。

使用特权

评论回复
5
比神乐|  楼主 | 2023-3-9 11:52 | 只看该作者
LLGTR 发表于 2023-3-9 11:34
调试看看哪个地方跳出报错。

我没有调试工具,只有烧写工具。

使用特权

评论回复
6
比神乐|  楼主 | 2023-3-9 11:57 | 只看该作者
朝生 发表于 2023-3-9 11:34
ADC初始化失败呗,是不是有些配置没打开?

谢谢!我感觉都打开了




我照着AD例程改的。

使用特权

评论回复
7
比神乐|  楼主 | 2023-3-9 11:58 | 只看该作者
天天向善 发表于 2023-3-9 11:34
ADC的硬件通道没打开吧。

代码里面有打开通道9啊

使用特权

评论回复
8
一叶倾城wwq| | 2023-3-9 14:02 | 只看该作者
楼主用cube配置,底层代码不用写的。

使用特权

评论回复
9
一叶倾城wwq| | 2023-3-9 14:03 | 只看该作者
或者直接仿真看采样数据呗,不打印了

使用特权

评论回复
10
Undshing| | 2023-3-9 18:04 | 只看该作者
调试一下看看

使用特权

评论回复
11
比神乐|  楼主 | 2023-3-10 08:56 | 只看该作者
一叶倾城wwq 发表于 2023-3-9 14:03
或者直接仿真看采样数据呗,不打印了

没有仿真工具。

使用特权

评论回复
12
比神乐|  楼主 | 2023-3-10 08:57 | 只看该作者

没有仿真工具,没法调试。

使用特权

评论回复
13
香水城| | 2023-3-12 21:43 | 只看该作者
检查配置,还有电源,vDD,vdda等都确认下。

使用特权

评论回复
14
地瓜patch| | 2023-3-12 22:02 | 只看该作者
先初始化串口,再初始化adc

使用特权

评论回复
15
朝生| | 2023-4-6 17:11 | 只看该作者
比神乐 发表于 2023-3-9 11:57
谢谢!我感觉都打开了

感觉就是程序哪里没配置好。

使用特权

评论回复
16
LLGTR| | 2023-4-7 13:23 | 只看该作者
比神乐 发表于 2023-3-9 11:52
我没有调试工具,只有烧写工具。

JLink没有吗?可以搞个便宜的JLinkOB。

使用特权

评论回复
17
比神乐|  楼主 | 2023-4-8 11:45 | 只看该作者
LLGTR 发表于 2023-4-7 13:23
JLink没有吗?可以搞个便宜的JLinkOB。

有JLINK,可是在这个板子上不好用。

使用特权

评论回复
18
Undshing| | 2023-4-11 22:00 | 只看该作者
是不是初始化的问题啊?

使用特权

评论回复
19
LLGTR| | 2023-5-8 17:45 | 只看该作者
比神乐 发表于 2023-4-8 11:45
有JLINK,可是在这个板子上不好用。

不好用的意思是?容易报错?

使用特权

评论回复
20
caigang13| | 2023-5-8 22:04 | 只看该作者
说明初始化失败进入错误函数了啊

使用特权

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

本版积分规则

435

主题

3406

帖子

7

粉丝