[STM32L0] 请问如何配置STML0单片机多通道ADC采集呀

[复制链接]
1819|10
 楼主| wdliming 发表于 2019-3-1 14:10 | 显示全部楼层 |阅读模式
问题如题所示,请问如何用stm32L011芯片配置成多通道ADC采样,比如PA0,PA1两路采样,我的配置如下:
  1. int main(void)

  2. {

  3. /* USER CODE BEGIN 1 */

  4. uint8_t value_L;

  5. uint8_t value_H;

  6. uint8_t i = 0;



  7. /* USER CODE END 1 */



  8. /* MCU Configuration----------------------------------------------------------*/



  9. /* Reset of all peripherals, Initializes the Flash interface and the Systick. */

  10. HAL_Init();



  11. /* USER CODE BEGIN Init */



  12. /* USER CODE END Init */



  13. /* Configure the system clock */

  14. SystemClock_Config();



  15. /* USER CODE BEGIN SysInit */



  16. /* USER CODE END SysInit */



  17. /* Initialize all configured peripherals */

  18. MX_GPIO_Init();

  19. MX_ADC_Init();

  20. MX_USART2_UART_Init();

  21. /* USER CODE BEGIN 2 */

  22. USART_SendData(USART2,"a");

  23. USART_SendData(USART2,"a");

  24. USART_SendData(USART2,"a");

  25. //HAL_ADC_Start_DMA(&hadc, (uint32_t*)&uhADCxConvertedValue, 1);

  26. /* USER CODE END 2 */



  27. /* Infinite loop */

  28. /* USER CODE BEGIN WHILE */

  29. while (1)

  30. {



  31. /* USER CODE END WHILE */



  32. /* USER CODE BEGIN 3 */


  33. for(i=0;i<2;i++)

  34. {

  35. HAL_ADC_Start(&hadc);



  36. HAL_ADC_PollForConversion(&hadc,0xffff);//wait adc



  37. uhADCxConvertedValue[i]=HAL_ADC_GetValue(&hadc);



  38. //printf("------ch:%d--%d-------\r\n",i,adcBuf[i]);

  39. value_H = (uhADCxConvertedValue[i] & 0xff00 ) >> 8;

  40. value_L = (uhADCxConvertedValue[i] & 0x00ff );

  41. LL_USART_TransmitData8(USART2, value_L);

  42. LL_USART_TransmitData8(USART2, value_H);

  43. }

  44. HAL_ADC_Stop(&hadc);

  45. LL_mDelay(1000);

  46. }

  47. /* USER CODE END 3 */



  48. }



  49. ADC init function is below

  50. /* ADC init function */

  51. void MX_ADC_Init(void)

  52. {

  53. ADC_ChannelConfTypeDef sConfig;



  54.   /**Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion)

  55.   */

  56. hadc.Instance = ADC1;

  57. hadc.Init.OversamplingMode = DISABLE;

  58. hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV1;

  59. hadc.Init.Resolution = ADC_RESOLUTION_12B;

  60. hadc.Init.SamplingTime = ADC_SAMPLETIME_79CYCLES_5;

  61. hadc.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD;

  62. hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT;

  63. hadc.Init.ContinuousConvMode = DISABLE;

  64. hadc.Init.DiscontinuousConvMode = ENABLE;

  65. hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;

  66. hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START;

  67. hadc.Init.DMAContinuousRequests = DISABLE;

  68. hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV;

  69. hadc.Init.Overrun = ADC_OVR_DATA_PRESERVED;

  70. hadc.Init.LowPowerAutoWait = DISABLE;

  71. hadc.Init.LowPowerFrequencyMode = DISABLE;

  72. hadc.Init.LowPowerAutoPowerOff = DISABLE;

  73. if (HAL_ADC_Init(&hadc) != HAL_OK)

  74. {

  75.   _Error_Handler(__FILE__, __LINE__);

  76. }



  77.   /**Configure for the selected ADC regular channel to be converted.

  78.   */

  79. sConfig.Channel = ADC_CHANNEL_0;

  80. sConfig.Rank = 0;

  81. if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)

  82. {

  83.   _Error_Handler(__FILE__, __LINE__);

  84. }



  85.   /**Configure for the selected ADC regular channel to be converted.

  86.   */

  87. sConfig.Channel = ADC_CHANNEL_1;

  88. sConfig.Rank = 1;

  89. if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)

  90. {

  91.   _Error_Handler(__FILE__, __LINE__);

  92. }



  93. }
但是只能采集到PA0的电压,
高手们请问stm32L011的dma配置和F103的配置哪里一样啊?
 楼主| wdliming 发表于 2019-3-1 14:14 | 显示全部楼层
我用cubemx配置如下:
a.PNG b.PNG c.PNG d.PNG e.PNG
不知道哪里错了?


ZHMSGE 发表于 2019-3-1 14:15 | 显示全部楼层
在采集函数里面切换通道,只能帮到这里,不用谢我

评论

我也是这样搞的,当时这个问题花费点时间,左后完美解决。任意通道的采集。  发表于 2019-3-11 17:51
 楼主| wdliming 发表于 2019-3-1 14:34 | 显示全部楼层
ZHMSGE 发表于 2019-3-1 14:15
在采集函数里面切换通道,只能帮到这里,不用谢我

请问有示例吗??谢谢
guanjiaer 发表于 2019-3-11 13:13 | 显示全部楼层
楼主想用哪种模式进行采集呢
heimaojingzhang 发表于 2019-3-11 13:42 | 显示全部楼层
wdliming 发表于 2019-3-1 14:34
请问有示例吗??谢谢

他这个配置完了之后自然生成代码啊
keaibukelian 发表于 2019-3-11 14:16 | 显示全部楼层
楼主按照地板进行设置就能生成代码
 楼主| wdliming 发表于 2019-3-12 13:30 | 显示全部楼层
已经弄好了。。
sdswsasx 发表于 2019-3-12 14:43 | 显示全部楼层
代码空行太多。。。
 楼主| wdliming 发表于 2019-3-13 16:41 | 显示全部楼层
sdswsasx 发表于 2019-3-12 14:43
代码空行太多。。。

这个无所谓的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我的未来不是梦

76

主题

914

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部