STM32F3 ADC

  • 4 Replies
  • 1923 Views
*

Offline ch25

  • ***
  • 158
    • View Profile
STM32F3 ADC
« on: April 13, 2015, 01:58:30 pm »
จาก STM32F3 Discovery ทดสอบ ADC แล้วมันคอมไพล์ผ่านแต่ตอนรันมันไปค้าง  while(ADC_GetCalibrationStatus(ADC1) != RESET );
------------------------
 
Code: [Select]
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
  /* Configure ADC Channel7 as analog input */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 ;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
  GPIO_Init(GPIOC, &GPIO_InitStructure);
 
  ADC_StructInit(&ADC_InitStructure);

  /* Calibration procedure */ 
  ADC_VoltageRegulatorCmd(ADC1, ENABLE);
 
  /* Insert delay equal to 10 µs */
  Delay(10);
 
  ADC_SelectCalibrationMode(ADC1, ADC_CalibrationMode_Single);
  ADC_StartCalibration(ADC1);
 
  while(ADC_GetCalibrationStatus(ADC1) != RESET );

ไม่รู้จะแก้ยังไง

Re: STM32F3 ADC
« Reply #1 on: April 13, 2015, 02:19:44 pm »
ลอง reset calibration register ก่อน แล้วค่อย calibration ดูครับ

Code: [Select]
  /* ADC1 reset calibration register */   
  ADC_ResetCalibration(ADC1);
  while(ADC_GetResetCalibrationStatus(ADC1));
 
  /* ADC1 calibration start */
  ADC_StartCalibration(ADC1);
  while(ADC_GetCalibrationStatus(ADC1));

*

Offline ch25

  • ***
  • 158
    • View Profile
Re: STM32F3 ADC
« Reply #2 on: April 13, 2015, 04:15:12 pm »
ขอบคุณครับ แต่หา ADC_ResetCalibration(ADC1); ไม่เจอ คอมไพล์ไม่ผ่านครับ

*

Offline ch25

  • ***
  • 158
    • View Profile
Re: STM32F3 ADC
« Reply #3 on: May 06, 2015, 02:36:05 pm »
ตอนนี้เปลี่ยนมาใช้ Stm32Cube MX ให้มันสร้างไฟล์ให้ ก็พออ่านค่าได้อยู่ครับแต่มันไม่ค่อยถูก ผมต้องการอ่านค่า 4 ช่อง ต่อเนื่อง ผ่าน DMA ไม่รู้จะตั้งยังไงให้ถูกต้อง

*

Offline ch25

  • ***
  • 158
    • View Profile
Re: STM32F3 ADC
« Reply #4 on: May 08, 2015, 08:18:30 pm »
ตอนนี้อ่านค่า ADC ผ่าน DMA แต่พบว่าอ่านที่ได้มัน หมุนวนไปเรื่อย ๆ จะทำยังไงให้มันนิ่ง