Subversion Repositories DashDisplay

Rev

Rev 56 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 56 Rev 61
Line 53... Line 53...
53
      sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;
53
      sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;
54
      [..]
54
      [..]
55
      (@) Refer to the device datasheet for more details about output
55
      (@) Refer to the device datasheet for more details about output
56
          impedance value with and without output buffer.
56
          impedance value with and without output buffer.
57
 
57
 
58
      *** DAC connect feature ***
-
 
59
      ===============================
-
 
60
      [..]
-
 
61
      Each DAC channel can be connected internally.
-
 
62
      To connect, use
-
 
63
      sConfig.DAC_ConnectOnChipPeripheral = DAC_CHIPCONNECT_ENABLE;
-
 
64
 
-
 
65
      *** GPIO configurations guidelines ***
58
      *** GPIO configurations guidelines ***
66
      =====================
59
      =====================
67
      [..]
60
      [..]
68
      When a DAC channel is used (ex channel1 on PA4) and the other is not
61
      When a DAC channel is used (ex channel1 on PA4) and the other is not
69
      (ex channel2 on PA5 is configured in Analog and disabled).
62
      (ex channel2 on PA5 is configured in Analog and disabled).
Line 95... Line 88...
95
       by the following equation:
88
       by the following equation:
96
       [..]
89
       [..]
97
       DAC_OUTx = VREF+ * DOR / 4095
90
       DAC_OUTx = VREF+ * DOR / 4095
98
       (+) with  DOR is the Data Output Register
91
       (+) with  DOR is the Data Output Register
99
       [..]
92
       [..]
100
          VEF+ is the input voltage reference (refer to the device datasheet)
93
          VREF+ is the input voltage reference (refer to the device datasheet)
101
       [..]
94
       [..]
102
        e.g. To set DAC_OUT1 to 0.7V, use
95
        e.g. To set DAC_OUT1 to 0.7V, use
103
       (+) Assuming that VREF+ = 3.3V, DAC_OUT1 = (3.3 * 868) / 4095 = 0.7V
96
       (+) Assuming that VREF+ = 3.3V, DAC_OUT1 = (3.3 * 868) / 4095 = 0.7V
104
 
97
 
105
       *** DMA requests ***
98
       *** DMA requests ***
106
       =====================
99
       =====================
107
       [..]
100
       [..]
108
       A DMA1 request can be generated when an external trigger (but not a software trigger)
101
       A DMA request can be generated when an external trigger (but not a software trigger)
109
       occurs if DMA1 requests are enabled using HAL_DAC_Start_DMA().
102
       occurs if DMA1 requests are enabled using HAL_DAC_Start_DMA().
110
       DMA1 requests are mapped as following:
103
       DMA1 requests are mapped as following:
111
      (#) DAC channel1 mapped on DMA1 channel2
104
      (#) DAC channel1 mapped on (no request on STM32L1XX) / DMA1 channel2
112
      (#) DAC channel2 mapped on DMA1 channel3
105
      (#) DAC channel2 mapped on (no request on STM32L1XX) / DMA1 channel3
113
 
106
 
114
     [..]
107
     [..]
115
    (@) For Dual mode and specific signal (Triangle and noise) generation please
108
    (@) For Dual mode and specific signal (Triangle and noise) generation please
116
        refer to Extended Features Driver description
109
        refer to Extended Features Driver description
117
 
110
 
Line 207... Line 200...
207
 
200
 
208
      When The compilation define USE_HAL_DAC_REGISTER_CALLBACKS is set to 0 or
201
      When The compilation define USE_HAL_DAC_REGISTER_CALLBACKS is set to 0 or
209
      not defined, the callback registering feature is not available
202
      not defined, the callback registering feature is not available
210
      and weak (surcharged) callbacks are used.
203
      and weak (surcharged) callbacks are used.
211
 
204
 
212
 
-
 
213
 
-
 
214
     *** DAC HAL driver macros list ***
205
     *** DAC HAL driver macros list ***
215
     =============================================
206
     =============================================
216
     [..]
207
     [..]
217
       Below the list of most used macros in DAC HAL driver.
208
       Below the list of most used macros in DAC HAL driver.
218
 
209
 
Line 222... Line 213...
222
      (+) __HAL_DAC_GET_FLAG: Get the selected DAC's flag status
213
      (+) __HAL_DAC_GET_FLAG: Get the selected DAC's flag status
223
 
214
 
224
     [..]
215
     [..]
225
      (@) You can refer to the DAC HAL driver header file for more useful macros
216
      (@) You can refer to the DAC HAL driver header file for more useful macros
226
 
217
 
227
 @endverbatim
218
@endverbatim
228
  ******************************************************************************
219
  ******************************************************************************
229
  * @attention
220
  * @attention
230
  *
221
  *
231
  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
222
  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
232
  * All rights reserved.</center></h2>
223
  * All rights reserved.</center></h2>
Line 473... Line 464...
473
    {
464
    {
474
      /* Enable the selected DAC software conversion */
465
      /* Enable the selected DAC software conversion */
475
      SET_BIT(hdac->Instance->SWTRIGR, DAC_SWTRIGR_SWTRIG1);
466
      SET_BIT(hdac->Instance->SWTRIGR, DAC_SWTRIGR_SWTRIG1);
476
    }
467
    }
477
  }
468
  }
-
 
469
 
478
  else
470
  else
479
  {
471
  {
480
    /* Check if software trigger enabled */
472
    /* Check if software trigger enabled */
481
    if ((hdac->Instance->CR & (DAC_CR_TEN2 | DAC_CR_TSEL2)) == (DAC_TRIGGER_SOFTWARE << Channel))
473
    if ((hdac->Instance->CR & (DAC_CR_TEN2 | DAC_CR_TSEL2)) == (DAC_TRIGGER_SOFTWARE << (Channel & 0x10UL)))
482
    {
474
    {
483
      /* Enable the selected DAC software conversion*/
475
      /* Enable the selected DAC software conversion*/
484
      SET_BIT(hdac->Instance->SWTRIGR, DAC_SWTRIGR_SWTRIG2);
476
      SET_BIT(hdac->Instance->SWTRIGR, DAC_SWTRIGR_SWTRIG2);
485
    }
477
    }
486
  }
478
  }
487
 
479
 
-
 
480
 
488
  /* Change DAC state */
481
  /* Change DAC state */
489
  hdac->State = HAL_DAC_STATE_READY;
482
  hdac->State = HAL_DAC_STATE_READY;
490
 
483
 
491
  /* Process unlocked */
484
  /* Process unlocked */
492
  __HAL_UNLOCK(hdac);
485
  __HAL_UNLOCK(hdac);
Line 526... Line 519...
526
  *         the configuration information for the specified DAC.
519
  *         the configuration information for the specified DAC.
527
  * @param  Channel The selected DAC channel.
520
  * @param  Channel The selected DAC channel.
528
  *          This parameter can be one of the following values:
521
  *          This parameter can be one of the following values:
529
  *            @arg DAC_CHANNEL_1: DAC Channel1 selected
522
  *            @arg DAC_CHANNEL_1: DAC Channel1 selected
530
  *            @arg DAC_CHANNEL_2: DAC Channel2 selected
523
  *            @arg DAC_CHANNEL_2: DAC Channel2 selected
531
  * @param  pData The destination peripheral Buffer address.
524
  * @param  pData The source Buffer address.
532
  * @param  Length The length of data to be transferred from memory to DAC peripheral
525
  * @param  Length The length of data to be transferred from memory to DAC peripheral
533
  * @param  Alignment Specifies the data alignment for DAC channel.
526
  * @param  Alignment Specifies the data alignment for DAC channel.
534
  *          This parameter can be one of the following values:
527
  *          This parameter can be one of the following values:
535
  *            @arg DAC_ALIGN_8B_R: 8bit right data alignment selected
528
  *            @arg DAC_ALIGN_8B_R: 8bit right data alignment selected
536
  *            @arg DAC_ALIGN_12B_L: 12bit left data alignment selected
529
  *            @arg DAC_ALIGN_12B_L: 12bit left data alignment selected
Line 584... Line 577...
584
        break;
577
        break;
585
      default:
578
      default:
586
        break;
579
        break;
587
    }
580
    }
588
  }
581
  }
-
 
582
 
589
  else
583
  else
590
  {
584
  {
591
    /* Set the DMA transfer complete callback for channel2 */
585
    /* Set the DMA transfer complete callback for channel2 */
592
    hdac->DMA_Handle2->XferCpltCallback = DAC_DMAConvCpltCh2;
586
    hdac->DMA_Handle2->XferCpltCallback = DAC_DMAConvCpltCh2;
593
 
587
 
Line 618... Line 612...
618
      default:
612
      default:
619
        break;
613
        break;
620
    }
614
    }
621
  }
615
  }
622
 
616
 
-
 
617
 
623
  /* Enable the DMA channel */
618
  /* Enable the DMA channel */
624
  if (Channel == DAC_CHANNEL_1)
619
  if (Channel == DAC_CHANNEL_1)
625
  {
620
  {
626
    /* Enable the DAC DMA underrun interrupt */
621
    /* Enable the DAC DMA underrun interrupt */
627
    __HAL_DAC_ENABLE_IT(hdac, DAC_IT_DMAUDR1);
622
    __HAL_DAC_ENABLE_IT(hdac, DAC_IT_DMAUDR1);
628
 
623
 
629
    /* Enable the DMA channel */
624
    /* Enable the DMA channel */
630
    status = HAL_DMA_Start_IT(hdac->DMA_Handle1, (uint32_t)pData, tmpreg, Length);
625
    status = HAL_DMA_Start_IT(hdac->DMA_Handle1, (uint32_t)pData, tmpreg, Length);
631
  }
626
  }
-
 
627
 
632
  else
628
  else
633
  {
629
  {
634
    /* Enable the DAC DMA underrun interrupt */
630
    /* Enable the DAC DMA underrun interrupt */
635
    __HAL_DAC_ENABLE_IT(hdac, DAC_IT_DMAUDR2);
631
    __HAL_DAC_ENABLE_IT(hdac, DAC_IT_DMAUDR2);
636
 
632
 
637
    /* Enable the DMA channel */
633
    /* Enable the DMA channel */
638
    status = HAL_DMA_Start_IT(hdac->DMA_Handle2, (uint32_t)pData, tmpreg, Length);
634
    status = HAL_DMA_Start_IT(hdac->DMA_Handle2, (uint32_t)pData, tmpreg, Length);
639
  }
635
  }
640
 
636
 
-
 
637
 
641
  /* Process Unlocked */
638
  /* Process Unlocked */
642
  __HAL_UNLOCK(hdac);
639
  __HAL_UNLOCK(hdac);
643
 
640
 
644
  if (status == HAL_OK)
641
  if (status == HAL_OK)
645
  {
642
  {
Line 665... Line 662...
665
  *            @arg DAC_CHANNEL_2: DAC Channel2 selected
662
  *            @arg DAC_CHANNEL_2: DAC Channel2 selected
666
  * @retval HAL status
663
  * @retval HAL status
667
  */
664
  */
668
HAL_StatusTypeDef HAL_DAC_Stop_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel)
665
HAL_StatusTypeDef HAL_DAC_Stop_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel)
669
{
666
{
670
  HAL_StatusTypeDef status;
-
 
671
 
-
 
672
  /* Check the parameters */
667
  /* Check the parameters */
673
  assert_param(IS_DAC_CHANNEL(Channel));
668
  assert_param(IS_DAC_CHANNEL(Channel));
674
 
669
 
675
  /* Disable the selected DAC channel DMA request */
670
  /* Disable the selected DAC channel DMA request */
676
  hdac->Instance->CR &= ~(DAC_CR_DMAEN1 << (Channel & 0x10UL));
671
  hdac->Instance->CR &= ~(DAC_CR_DMAEN1 << (Channel & 0x10UL));
Line 682... Line 677...
682
 
677
 
683
  /* Channel1 is used */
678
  /* Channel1 is used */
684
  if (Channel == DAC_CHANNEL_1)
679
  if (Channel == DAC_CHANNEL_1)
685
  {
680
  {
686
    /* Disable the DMA channel */
681
    /* Disable the DMA channel */
687
    status = HAL_DMA_Abort(hdac->DMA_Handle1);
682
    (void)HAL_DMA_Abort(hdac->DMA_Handle1);
688
 
683
 
689
    /* Disable the DAC DMA underrun interrupt */
684
    /* Disable the DAC DMA underrun interrupt */
690
    __HAL_DAC_DISABLE_IT(hdac, DAC_IT_DMAUDR1);
685
    __HAL_DAC_DISABLE_IT(hdac, DAC_IT_DMAUDR1);
691
  }
686
  }
-
 
687
 
692
  else /* Channel2 is used for */
688
  else /* Channel2 is used for */
693
  {
689
  {
694
    /* Disable the DMA channel */
690
    /* Disable the DMA channel */
695
    status = HAL_DMA_Abort(hdac->DMA_Handle2);
691
    (void)HAL_DMA_Abort(hdac->DMA_Handle2);
696
 
692
 
697
    /* Disable the DAC DMA underrun interrupt */
693
    /* Disable the DAC DMA underrun interrupt */
698
    __HAL_DAC_DISABLE_IT(hdac, DAC_IT_DMAUDR2);
694
    __HAL_DAC_DISABLE_IT(hdac, DAC_IT_DMAUDR2);
699
  }
695
  }
700
 
696
 
701
  /* Check if DMA Channel effectively disabled */
-
 
702
  if (status != HAL_OK)
-
 
703
  {
-
 
704
    /* Update DAC state machine to error */
-
 
705
    hdac->State = HAL_DAC_STATE_ERROR;
-
 
706
  }
697
 
707
  else
-
 
708
  {
-
 
709
    /* Change DAC state */
698
  /* Change DAC state */
710
    hdac->State = HAL_DAC_STATE_READY;
699
  hdac->State = HAL_DAC_STATE_READY;
711
  }
-
 
712
 
700
 
713
  /* Return function status */
701
  /* Return function status */
714
  return status;
702
  return HAL_OK;
715
}
703
}
716
 
704
 
717
/**
705
/**
718
  * @brief  Handles DAC interrupt request
706
  * @brief  Handles DAC interrupt request
719
  *         This function uses the interruption of DMA
707
  *         This function uses the interruption of DMA
Line 730... Line 718...
730
    if (__HAL_DAC_GET_FLAG(hdac, DAC_FLAG_DMAUDR1))
718
    if (__HAL_DAC_GET_FLAG(hdac, DAC_FLAG_DMAUDR1))
731
    {
719
    {
732
      /* Change DAC state to error state */
720
      /* Change DAC state to error state */
733
      hdac->State = HAL_DAC_STATE_ERROR;
721
      hdac->State = HAL_DAC_STATE_ERROR;
734
 
722
 
735
      /* Set DAC error code to chanel1 DMA underrun error */
723
      /* Set DAC error code to channel1 DMA underrun error */
736
      SET_BIT(hdac->ErrorCode, HAL_DAC_ERROR_DMAUNDERRUNCH1);
724
      SET_BIT(hdac->ErrorCode, HAL_DAC_ERROR_DMAUNDERRUNCH1);
737
 
725
 
738
      /* Clear the underrun flag */
726
      /* Clear the underrun flag */
739
      __HAL_DAC_CLEAR_FLAG(hdac, DAC_FLAG_DMAUDR1);
727
      __HAL_DAC_CLEAR_FLAG(hdac, DAC_FLAG_DMAUDR1);
740
 
728
 
Line 748... Line 736...
748
      HAL_DAC_DMAUnderrunCallbackCh1(hdac);
736
      HAL_DAC_DMAUnderrunCallbackCh1(hdac);
749
#endif /* USE_HAL_DAC_REGISTER_CALLBACKS */
737
#endif /* USE_HAL_DAC_REGISTER_CALLBACKS */
750
    }
738
    }
751
  }
739
  }
752
 
740
 
-
 
741
 
753
  if (__HAL_DAC_GET_IT_SOURCE(hdac, DAC_IT_DMAUDR2))
742
  if (__HAL_DAC_GET_IT_SOURCE(hdac, DAC_IT_DMAUDR2))
754
  {
743
  {
755
    /* Check underrun flag of DAC channel 2 */
744
    /* Check underrun flag of DAC channel 2 */
756
    if (__HAL_DAC_GET_FLAG(hdac, DAC_FLAG_DMAUDR2))
745
    if (__HAL_DAC_GET_FLAG(hdac, DAC_FLAG_DMAUDR2))
757
    {
746
    {
Line 773... Line 762...
773
#else
762
#else
774
      HAL_DACEx_DMAUnderrunCallbackCh2(hdac);
763
      HAL_DACEx_DMAUnderrunCallbackCh2(hdac);
775
#endif /* USE_HAL_DAC_REGISTER_CALLBACKS */
764
#endif /* USE_HAL_DAC_REGISTER_CALLBACKS */
776
    }
765
    }
777
  }
766
  }
-
 
767
 
778
}
768
}
779
 
769
 
780
/**
770
/**
781
  * @brief  Set the specified data holding register value for DAC channel.
771
  * @brief  Set the specified data holding register value for DAC channel.
782
  * @param  hdac pointer to a DAC_HandleTypeDef structure that contains
772
  * @param  hdac pointer to a DAC_HandleTypeDef structure that contains
Line 793... Line 783...
793
  * @param  Data Data to be loaded in the selected data holding register.
783
  * @param  Data Data to be loaded in the selected data holding register.
794
  * @retval HAL status
784
  * @retval HAL status
795
  */
785
  */
796
HAL_StatusTypeDef HAL_DAC_SetValue(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t Alignment, uint32_t Data)
786
HAL_StatusTypeDef HAL_DAC_SetValue(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t Alignment, uint32_t Data)
797
{
787
{
798
  __IO uint32_t tmp = 0;
788
  __IO uint32_t tmp = 0UL;
799
 
789
 
800
  /* Check the parameters */
790
  /* Check the parameters */
801
  assert_param(IS_DAC_CHANNEL(Channel));
791
  assert_param(IS_DAC_CHANNEL(Channel));
802
  assert_param(IS_DAC_ALIGN(Alignment));
792
  assert_param(IS_DAC_ALIGN(Alignment));
803
  assert_param(IS_DAC_DATA(Data));
793
  assert_param(IS_DAC_DATA(Data));
Line 805... Line 795...
805
  tmp = (uint32_t)hdac->Instance;
795
  tmp = (uint32_t)hdac->Instance;
806
  if (Channel == DAC_CHANNEL_1)
796
  if (Channel == DAC_CHANNEL_1)
807
  {
797
  {
808
    tmp += DAC_DHR12R1_ALIGNMENT(Alignment);
798
    tmp += DAC_DHR12R1_ALIGNMENT(Alignment);
809
  }
799
  }
-
 
800
 
810
  else
801
  else
811
  {
802
  {
812
    tmp += DAC_DHR12R2_ALIGNMENT(Alignment);
803
    tmp += DAC_DHR12R2_ALIGNMENT(Alignment);
813
  }
804
  }
814
 
805
 
-
 
806
 
815
  /* Set the DAC channel selected data holding register */
807
  /* Set the DAC channel selected data holding register */
816
  *(__IO uint32_t *) tmp = Data;
808
  *(__IO uint32_t *) tmp = Data;
817
 
809
 
818
  /* Return function status */
810
  /* Return function status */
819
  return HAL_OK;
811
  return HAL_OK;
Line 912... Line 904...
912
  *            @arg DAC_CHANNEL_2: DAC Channel2 selected
904
  *            @arg DAC_CHANNEL_2: DAC Channel2 selected
913
  * @retval The selected DAC channel data output value.
905
  * @retval The selected DAC channel data output value.
914
  */
906
  */
915
uint32_t HAL_DAC_GetValue(DAC_HandleTypeDef *hdac, uint32_t Channel)
907
uint32_t HAL_DAC_GetValue(DAC_HandleTypeDef *hdac, uint32_t Channel)
916
{
908
{
-
 
909
  uint32_t result;
-
 
910
 
917
  /* Check the parameters */
911
  /* Check the parameters */
918
  assert_param(IS_DAC_CHANNEL(Channel));
912
  assert_param(IS_DAC_CHANNEL(Channel));
919
 
913
 
920
  /* Returns the DAC channel data output register value */
-
 
921
  if (Channel == DAC_CHANNEL_1)
914
  if (Channel == DAC_CHANNEL_1)
922
  {
915
  {
923
    return hdac->Instance->DOR1;
916
    result = hdac->Instance->DOR1;
924
  }
917
  }
-
 
918
 
925
  else
919
  else
926
  {
920
  {
927
    return hdac->Instance->DOR2;
921
    result = hdac->Instance->DOR2;
928
  }
922
  }
-
 
923
 
-
 
924
  /* Returns the DAC channel data output register value */
-
 
925
  return result;
929
}
926
}
930
 
927
 
931
/**
928
/**
932
  * @brief  Configures the selected DAC channel.
929
  * @brief  Configures the selected DAC channel.
933
  * @param  hdac pointer to a DAC_HandleTypeDef structure that contains
930
  * @param  hdac pointer to a DAC_HandleTypeDef structure that contains
Line 956... Line 953...
956
  hdac->State = HAL_DAC_STATE_BUSY;
953
  hdac->State = HAL_DAC_STATE_BUSY;
957
 
954
 
958
  /* Get the DAC CR value */
955
  /* Get the DAC CR value */
959
  tmpreg1 = hdac->Instance->CR;
956
  tmpreg1 = hdac->Instance->CR;
960
  /* Clear BOFFx, TENx, TSELx, WAVEx and MAMPx bits */
957
  /* Clear BOFFx, TENx, TSELx, WAVEx and MAMPx bits */
961
  tmpreg1 &= ~(((uint32_t)(DAC_CR_MAMP1 | DAC_CR_WAVE1 | DAC_CR_TSEL1 | DAC_CR_TEN1 | DAC_CR_BOFF1)) << Channel);
958
  tmpreg1 &= ~(((uint32_t)(DAC_CR_MAMP1 | DAC_CR_WAVE1 | DAC_CR_TSEL1 | DAC_CR_TEN1 | DAC_CR_BOFF1)) << (Channel & 0x10UL));
962
  /* Configure for the selected DAC channel: buffer output, trigger */
959
  /* Configure for the selected DAC channel: buffer output, trigger */
963
  /* Set TSELx and TENx bits according to DAC_Trigger value */
960
  /* Set TSELx and TENx bits according to DAC_Trigger value */
964
  /* Set BOFFx bit according to DAC_OutputBuffer value */  
961
  /* Set BOFFx bit according to DAC_OutputBuffer value */
965
  tmpreg2 = (sConfig->DAC_Trigger | sConfig->DAC_OutputBuffer);
962
  tmpreg2 = (sConfig->DAC_Trigger | sConfig->DAC_OutputBuffer);
966
  /* Calculate CR register value depending on DAC_Channel */
963
  /* Calculate CR register value depending on DAC_Channel */
967
  tmpreg1 |= tmpreg2 << Channel;
964
  tmpreg1 |= tmpreg2 << (Channel & 0x10UL);
968
  /* Write to DAC CR */
965
  /* Write to DAC CR */
969
  hdac->Instance->CR = tmpreg1;
966
  hdac->Instance->CR = tmpreg1;
970
  /* Disable wave generation */
967
  /* Disable wave generation */
971
  CLEAR_BIT(hdac->Instance->CR, (DAC_CR_WAVE1 << Channel));
968
  CLEAR_BIT(hdac->Instance->CR, (DAC_CR_WAVE1 << (Channel & 0x10UL)));
972
  /* Disable wave generation */
-
 
973
  hdac->Instance->CR &= ~(DAC_CR_WAVE1 << (Channel & 0x10UL));
-
 
974
 
969
 
975
  /* Change DAC state */
970
  /* Change DAC state */
976
  hdac->State = HAL_DAC_STATE_READY;
971
  hdac->State = HAL_DAC_STATE_READY;
977
 
972
 
978
  /* Process unlocked */
973
  /* Process unlocked */
Line 1092... Line 1087...
1092
        hdac->ErrorCallbackCh1 = pCallback;
1087
        hdac->ErrorCallbackCh1 = pCallback;
1093
        break;
1088
        break;
1094
      case HAL_DAC_CH1_UNDERRUN_CB_ID :
1089
      case HAL_DAC_CH1_UNDERRUN_CB_ID :
1095
        hdac->DMAUnderrunCallbackCh1 = pCallback;
1090
        hdac->DMAUnderrunCallbackCh1 = pCallback;
1096
        break;
1091
        break;
-
 
1092
 
1097
      case HAL_DAC_CH2_COMPLETE_CB_ID :
1093
      case HAL_DAC_CH2_COMPLETE_CB_ID :
1098
        hdac->ConvCpltCallbackCh2 = pCallback;
1094
        hdac->ConvCpltCallbackCh2 = pCallback;
1099
        break;
1095
        break;
1100
      case HAL_DAC_CH2_HALF_COMPLETE_CB_ID :
1096
      case HAL_DAC_CH2_HALF_COMPLETE_CB_ID :
1101
        hdac->ConvHalfCpltCallbackCh2 = pCallback;
1097
        hdac->ConvHalfCpltCallbackCh2 = pCallback;
Line 1104... Line 1100...
1104
        hdac->ErrorCallbackCh2 = pCallback;
1100
        hdac->ErrorCallbackCh2 = pCallback;
1105
        break;
1101
        break;
1106
      case HAL_DAC_CH2_UNDERRUN_CB_ID :
1102
      case HAL_DAC_CH2_UNDERRUN_CB_ID :
1107
        hdac->DMAUnderrunCallbackCh2 = pCallback;
1103
        hdac->DMAUnderrunCallbackCh2 = pCallback;
1108
        break;
1104
        break;
-
 
1105
 
1109
      case HAL_DAC_MSPINIT_CB_ID :
1106
      case HAL_DAC_MSPINIT_CB_ID :
1110
        hdac->MspInitCallback = pCallback;
1107
        hdac->MspInitCallback = pCallback;
1111
        break;
1108
        break;
1112
      case HAL_DAC_MSPDEINIT_CB_ID :
1109
      case HAL_DAC_MSPDEINIT_CB_ID :
1113
        hdac->MspDeInitCallback = pCallback;
1110
        hdac->MspDeInitCallback = pCallback;
Line 1155... Line 1152...
1155
  * @brief  Unregister a User DAC Callback
1152
  * @brief  Unregister a User DAC Callback
1156
  *         DAC Callback is redirected to the weak (surcharged) predefined callback
1153
  *         DAC Callback is redirected to the weak (surcharged) predefined callback
1157
  * @param  hdac DAC handle
1154
  * @param  hdac DAC handle
1158
  * @param  CallbackID ID of the callback to be unregistered
1155
  * @param  CallbackID ID of the callback to be unregistered
1159
  *         This parameter can be one of the following values:
1156
  *         This parameter can be one of the following values:
1160
  *          @arg @ref HAL_DAC_CH1_COMPLETE_CB_ID          DAC CH1 tranfer Complete Callback ID
1157
  *          @arg @ref HAL_DAC_CH1_COMPLETE_CB_ID          DAC CH1 transfer Complete Callback ID
1161
  *          @arg @ref HAL_DAC_CH1_HALF_COMPLETE_CB_ID     DAC CH1 Half Complete Callback ID
1158
  *          @arg @ref HAL_DAC_CH1_HALF_COMPLETE_CB_ID     DAC CH1 Half Complete Callback ID
1162
  *          @arg @ref HAL_DAC_CH1_ERROR_ID                DAC CH1 Error Callback ID
1159
  *          @arg @ref HAL_DAC_CH1_ERROR_ID                DAC CH1 Error Callback ID
1163
  *          @arg @ref HAL_DAC_CH1_UNDERRUN_CB_ID          DAC CH1 UnderRun Callback ID
1160
  *          @arg @ref HAL_DAC_CH1_UNDERRUN_CB_ID          DAC CH1 UnderRun Callback ID
1164
  *          @arg @ref HAL_DAC_CH2_COMPLETE_CB_ID          DAC CH2 Complete Callback ID
1161
  *          @arg @ref HAL_DAC_CH2_COMPLETE_CB_ID          DAC CH2 Complete Callback ID
1165
  *          @arg @ref HAL_DAC_CH2_HALF_COMPLETE_CB_ID     DAC CH2 Half Complete Callback ID
1162
  *          @arg @ref HAL_DAC_CH2_HALF_COMPLETE_CB_ID     DAC CH2 Half Complete Callback ID
Line 1191... Line 1188...
1191
        hdac->ErrorCallbackCh1 = HAL_DAC_ErrorCallbackCh1;
1188
        hdac->ErrorCallbackCh1 = HAL_DAC_ErrorCallbackCh1;
1192
        break;
1189
        break;
1193
      case HAL_DAC_CH1_UNDERRUN_CB_ID :
1190
      case HAL_DAC_CH1_UNDERRUN_CB_ID :
1194
        hdac->DMAUnderrunCallbackCh1 = HAL_DAC_DMAUnderrunCallbackCh1;
1191
        hdac->DMAUnderrunCallbackCh1 = HAL_DAC_DMAUnderrunCallbackCh1;
1195
        break;
1192
        break;
-
 
1193
 
1196
      case HAL_DAC_CH2_COMPLETE_CB_ID :
1194
      case HAL_DAC_CH2_COMPLETE_CB_ID :
1197
        hdac->ConvCpltCallbackCh2 = HAL_DACEx_ConvCpltCallbackCh2;
1195
        hdac->ConvCpltCallbackCh2 = HAL_DACEx_ConvCpltCallbackCh2;
1198
        break;
1196
        break;
1199
      case HAL_DAC_CH2_HALF_COMPLETE_CB_ID :
1197
      case HAL_DAC_CH2_HALF_COMPLETE_CB_ID :
1200
        hdac->ConvHalfCpltCallbackCh2 = HAL_DACEx_ConvHalfCpltCallbackCh2;
1198
        hdac->ConvHalfCpltCallbackCh2 = HAL_DACEx_ConvHalfCpltCallbackCh2;
Line 1203... Line 1201...
1203
        hdac->ErrorCallbackCh2 = HAL_DACEx_ErrorCallbackCh2;
1201
        hdac->ErrorCallbackCh2 = HAL_DACEx_ErrorCallbackCh2;
1204
        break;
1202
        break;
1205
      case HAL_DAC_CH2_UNDERRUN_CB_ID :
1203
      case HAL_DAC_CH2_UNDERRUN_CB_ID :
1206
        hdac->DMAUnderrunCallbackCh2 = HAL_DACEx_DMAUnderrunCallbackCh2;
1204
        hdac->DMAUnderrunCallbackCh2 = HAL_DACEx_DMAUnderrunCallbackCh2;
1207
        break;
1205
        break;
-
 
1206
 
1208
      case HAL_DAC_MSPINIT_CB_ID :
1207
      case HAL_DAC_MSPINIT_CB_ID :
1209
        hdac->MspInitCallback = HAL_DAC_MspInit;
1208
        hdac->MspInitCallback = HAL_DAC_MspInit;
1210
        break;
1209
        break;
1211
      case HAL_DAC_MSPDEINIT_CB_ID :
1210
      case HAL_DAC_MSPDEINIT_CB_ID :
1212
        hdac->MspDeInitCallback = HAL_DAC_MspDeInit;
1211
        hdac->MspDeInitCallback = HAL_DAC_MspDeInit;
Line 1214... Line 1213...
1214
      case HAL_DAC_ALL_CB_ID :
1213
      case HAL_DAC_ALL_CB_ID :
1215
        hdac->ConvCpltCallbackCh1 = HAL_DAC_ConvCpltCallbackCh1;
1214
        hdac->ConvCpltCallbackCh1 = HAL_DAC_ConvCpltCallbackCh1;
1216
        hdac->ConvHalfCpltCallbackCh1 = HAL_DAC_ConvHalfCpltCallbackCh1;
1215
        hdac->ConvHalfCpltCallbackCh1 = HAL_DAC_ConvHalfCpltCallbackCh1;
1217
        hdac->ErrorCallbackCh1 = HAL_DAC_ErrorCallbackCh1;
1216
        hdac->ErrorCallbackCh1 = HAL_DAC_ErrorCallbackCh1;
1218
        hdac->DMAUnderrunCallbackCh1 = HAL_DAC_DMAUnderrunCallbackCh1;
1217
        hdac->DMAUnderrunCallbackCh1 = HAL_DAC_DMAUnderrunCallbackCh1;
-
 
1218
 
1219
        hdac->ConvCpltCallbackCh2 = HAL_DACEx_ConvCpltCallbackCh2;
1219
        hdac->ConvCpltCallbackCh2 = HAL_DACEx_ConvCpltCallbackCh2;
1220
        hdac->ConvHalfCpltCallbackCh2 = HAL_DACEx_ConvHalfCpltCallbackCh2;
1220
        hdac->ConvHalfCpltCallbackCh2 = HAL_DACEx_ConvHalfCpltCallbackCh2;
1221
        hdac->ErrorCallbackCh2 = HAL_DACEx_ErrorCallbackCh2;
1221
        hdac->ErrorCallbackCh2 = HAL_DACEx_ErrorCallbackCh2;
1222
        hdac->DMAUnderrunCallbackCh2 = HAL_DACEx_DMAUnderrunCallbackCh2;
1222
        hdac->DMAUnderrunCallbackCh2 = HAL_DACEx_DMAUnderrunCallbackCh2;
-
 
1223
 
1223
        hdac->MspInitCallback = HAL_DAC_MspInit;
1224
        hdac->MspInitCallback = HAL_DAC_MspInit;
1224
        hdac->MspDeInitCallback = HAL_DAC_MspDeInit;
1225
        hdac->MspDeInitCallback = HAL_DAC_MspDeInit;
1225
        break;
1226
        break;
1226
      default :
1227
      default :
1227
        /* Update the error code */
1228
        /* Update the error code */