wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1596|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

py32f030k28單片機開發(fā)板NTC溫度顯示代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:14088 發(fā)表于 2024-8-25 10:57 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
普冉的M0系列MCU PY32F030K28自帶的LED數(shù)碼管驅(qū)動,省去了外部驅(qū)動IC。本例程演示通過模擬輸入PA7引腳采集NTC(熱敏電阻)電壓計算對應(yīng)溫度并驅(qū)動四位LED數(shù)碼管顯示。

  1. /**
  2. ******************************************************************************
  3. * 文件名程: main.c
  4. * 作    者: 鄧凱哥
  5. * 功    能: 主函數(shù)
  6. * 硬    件: PY32F030K28-StartKit-V0.1
  7. * 軟件版本 V0.0.1(2024/4/16 16:02)
  8. ******************************************************************************
  9. **/
  10. #include "main.h"
  11. #include "ntc.h"
  12. #include "timepare.h"

  13. #define LED_DISP_c              0x61        //溫度符號小c

  14. /* Private variables ---------------------------------------------------------*/

  15. const uint8_t dispArr[] = {LL_LED_DISP_0, LL_LED_DISP_1, LL_LED_DISP_2, LL_LED_DISP_3, LL_LED_DISP_4, \
  16.                            LL_LED_DISP_5, LL_LED_DISP_6, LL_LED_DISP_7, LL_LED_DISP_8, LL_LED_DISP_9
  17.                           };

  18. int32_t acc_adcval,mean_value;
  19. uint32_t ADC1_Datas[128];
  20. int16_t ADC_ConverDone,adc_count,tempval;
  21. /* Private user code ---------------------------------------------------------*/
  22. /* Private macro -------------------------------------------------------------*/
  23. /* Private function prototypes -----------------------------------------------*/
  24. static void APP_SystemClockConfig(void);
  25. static void APP_AdcConfig(void);
  26. static void APP_AdcEnable(void);
  27. static void APP_AdcCalibrate(void);
  28. static void APP_ConfigLed(void);
  29. static void ADC1_DMA_Config(void);
  30. static void APP_ConfigUsart1(void);

  31. /******************************************************************************
  32. **函數(shù)信息 :System_Tick(uint32_t Ticks)           
  33. **功能描述 :系統(tǒng)嘀嗒時鐘配置
  34. **輸入?yún)?shù) :Ticks 頻率
  35. **輸出參數(shù) :無
  36. **說    明 :
  37. ******************************************************************************/                                                  
  38. void System_Tick(uint32_t Ticks)
  39. {
  40.   SysTick->LOAD  = (uint32_t)((SystemCoreClock / Ticks) - 1UL);          /* set reload register */
  41.   SysTick->VAL   = 0UL;                                                       /* Load the SysTick Counter Value */
  42.   SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk |
  43.                                    SysTick_CTRL_TICKINT_Msk   |
  44.                    SysTick_CTRL_ENABLE_Msk;                                   /* Enable the Systick Timer */
  45. }

  46. /******************************************************************************
  47. **函數(shù)信息 :fputc( int data, FILE *f )                  
  48. **功能描述 :重定向fputc函數(shù)
  49. **輸入?yún)?shù) :data  要打印字符 , *f  文件指針
  50. **輸出參數(shù) :無
  51. **說    明 :
  52. ******************************************************************************/
  53. struct __FILE
  54. {
  55.         int handle;
  56. };

  57. FILE __stdout;

  58. int fputc(int data, FILE *f)
  59. {
  60.   /* Send a byte to USART */
  61.   LL_USART_TransmitData8(USART1, data);
  62.   while (!LL_USART_IsActiveFlag_TC(USART1));
  63.   LL_USART_ClearFlag_TC(USART1);

  64.   return (data);
  65. }

  66. /**
  67.   * @brief  應(yīng)用程序入口函數(shù).
  68.   * @retval int
  69.   */
  70. int main(void)
  71. {
  72.         /* 配置系統(tǒng)時鐘 */
  73.         APP_SystemClockConfig();
  74.         
  75.         /* 配置USART1相關(guān)參數(shù) */
  76.         APP_ConfigUsart1();
  77.         
  78.         /* ADC復(fù)位 */
  79.         LL_ADC_Reset(ADC1);

  80.         /* ADC模塊時鐘使能 */
  81.         LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_ADC1);

  82.         /* ADC校準 */
  83.         APP_AdcCalibrate();

  84.         /* 配置ADC相關(guān)參數(shù) */
  85.         APP_AdcConfig();
  86.         
  87.         /* 配置ADC DMA參數(shù) */
  88.         ADC1_DMA_Config();
  89.         
  90.         /* 配置LED相關(guān)參數(shù) */
  91.         APP_ConfigLed();

  92.         /* 使能ADC */
  93.         APP_AdcEnable();

  94.         /* 開始ADC轉(zhuǎn)換(如果是軟件觸發(fā)則直接開始轉(zhuǎn)換) */
  95.         LL_ADC_REG_StartConversion(ADC1);
  96.         
  97.         /* 開啟系統(tǒng)嘀嗒定時器 */
  98.         System_Tick(1000);
  99.         while (1)
  100.         {
  101.         
  102.                 if( TimePare.Tim1ms_flag == 1 )                //1ms任務(wù)
  103.                 {
  104.                         TimePare.Tim1ms_flag = 0;
  105.                         if( ++TimePare.Tim10ms_count >= 10 )
  106.                         {
  107.                                 TimePare.Tim10ms_count = 0;
  108.                                 TimePare.Tim10ms_flag = 1;
  109.                         }
  110.                         
  111.                         if( ++TimePare.Tim50ms_count >= 50 )
  112.                         {
  113.                                 TimePare.Tim50ms_count = 0;
  114.                                 TimePare.Tim50ms_flag = 1;
  115.                         }
  116.                 }
  117.                
  118.                
  119.                
  120.                 if( TimePare.Tim10ms_flag == 1 )        //10ms 任務(wù)
  121.                 {               
  122.                         
  123.                         TimePare.Tim10ms_flag = 0;
  124.                         if( ++TimePare.Tim100ms_count >= 10 )
  125.                         {
  126.                                 TimePare.Tim100ms_count = 0;
  127.                                 TimePare.Tim100ms_flag = 1;
  128.                         }
  129.                         
  130.                         if( ++TimePare.Tim200ms_count >= 20 )
  131.                         {
  132.                                 TimePare.Tim200ms_count = 0;
  133.                                 TimePare.Tim200ms_flag = 1;
  134.                         }
  135.                 }
  136.                
  137.                
  138.                 if( TimePare.Tim50ms_flag == 1 )        //50ms 任務(wù)
  139.                 {
  140.                         
  141.                         TimePare.Tim50ms_flag = 0;
  142.                 }
  143.                
  144.                 if( TimePare.Tim100ms_flag == 1 )        //100ms 任務(wù)
  145.                 {
  146.                         
  147.                         TimePare.Tim100ms_flag = 0;
  148.                         if( ++TimePare.Tim500ms_count >= 5 )
  149.                         {
  150.                                 TimePare.Tim500ms_count = 0;
  151.                                 TimePare.Tim500ms_flag = 1;
  152.                         }
  153.                 }
  154.                
  155.                 if( TimePare.Tim200ms_flag == 1 )        //200ms 任務(wù)
  156.                 {
  157.                         TimePare.Tim200ms_flag = 0;
  158.                 }
  159.                
  160.                 if( TimePare.Tim500ms_flag == 1 )        //500ms 任務(wù)
  161.                 {
  162.                         ///顯示NTC溫度
  163. //                        LL_LED_SetDisplayValue(LED, LL_LED_COM0, dispArr[(tempval) /100]);
  164.                         LL_LED_SetDisplayValue(LED, LL_LED_COM1, dispArr[(tempval) %100/10]);
  165.                         LL_LED_SetDisplayValue(LED, LL_LED_COM2, dispArr[(tempval) %100%10]);
  166.                         LL_LED_SetDisplayValue(LED, LL_LED_COM3, LED_DISP_c);
  167.                         
  168.                         printf("ADC_VALUE = %d,   NTC_VALUE = %d\r\n",mean_value, tempval);          //串口打印ADC數(shù)值和NTC溫度值
  169.                         
  170.                         TimePare.Tim500ms_flag = 0;
  171.                         if( ++TimePare.Tim1s_count >= 2 )
  172.                         {
  173.                                 TimePare.Tim1s_count = 0;
  174.                                 TimePare.Tim1s_flag = 1;
  175.                         }
  176.                 }
  177.                
  178.                 if( TimePare.Tim1s_flag == 1 )                //1000ms 任務(wù)
  179.                 {
  180.                         TimePare.Tim1s_flag = 0;
  181.                 }

  182.         }
  183. }


  184. /**
  185.   * @brief  系統(tǒng)時鐘配置函數(shù)
  186.   * @param  無
  187.   * @retval 無
  188.   */
  189. static void APP_SystemClockConfig(void)
  190. {
  191.         /* 使能HSI */
  192.         LL_RCC_HSI_Enable();
  193.         LL_RCC_HSI_SetCalibFreq(LL_RCC_HSICALIBRATION_24MHz);
  194.         while(LL_RCC_HSI_IsReady() != 1)
  195.         {
  196.         }

  197.         /* 設(shè)置 AHB 分頻*/
  198.         LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);

  199.         /* 配置HSISYS作為系統(tǒng)時鐘源 */
  200.         LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_HSISYS);
  201.         while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_HSISYS)
  202.         {
  203.         }

  204.         /* 設(shè)置 APB1 分頻*/
  205.         LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1);
  206.         LL_Init1msTick(24000000);

  207.         /* 更新系統(tǒng)時鐘全局變量SystemCoreClock(也可以通過調(diào)用SystemCoreClockUpdate函數(shù)更新) */
  208.         LL_SetSystemCoreClock(24000000);
  209. }

  210. /**
  211.   * @brief  USART配置函數(shù)
  212.   * @param  USARTx:USART模塊,可以是USART1、USART2
  213.   * @retval 無
  214.   */
  215. static void APP_ConfigUsart1(void)
  216. {
  217.         /*使能GPIOA時鐘*/
  218.         LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
  219.         /*使能USART1時鐘*/
  220.         LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_USART1);

  221.         /*GPIOA配置*/
  222.         LL_GPIO_InitTypeDef GPIO_InitStruct;
  223.         /*選擇PA9引腳*/
  224.         GPIO_InitStruct.Pin = LL_GPIO_PIN_9;
  225.         /*選擇復(fù)用模式*/
  226.         GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
  227.         /*選擇輸出速度*/
  228.         GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
  229.         /*選擇輸出模式*/
  230.         GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
  231.         /*選擇上拉*/
  232.         GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
  233.         /*復(fù)用為USART1功能*/
  234.         GPIO_InitStruct.Alternate = LL_GPIO_AF1_USART1;
  235.         /*GPIOA初始化*/
  236.         LL_GPIO_Init(GPIOA,&GPIO_InitStruct);

  237.         /*選擇PA10引腳*/
  238.         GPIO_InitStruct.Pin = LL_GPIO_PIN_10;
  239.         /*復(fù)用為USART1功能*/
  240.         GPIO_InitStruct.Alternate = LL_GPIO_AF1_USART1;
  241.         /*GPIOA初始化*/
  242.         LL_GPIO_Init(GPIOA,&GPIO_InitStruct);

  243.         /*配置USART功能*/
  244.         LL_USART_InitTypeDef USART_InitStruct;
  245.         /*設(shè)置波特率*/
  246.         USART_InitStruct.BaudRate = 9600;
  247.         /*設(shè)置數(shù)據(jù)長度*/
  248.         USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B;
  249.         /*停止位*/
  250.         USART_InitStruct.StopBits = LL_USART_STOPBITS_1;
  251.         /*設(shè)置校驗位*/
  252.         USART_InitStruct.Parity = LL_USART_PARITY_NONE;
  253.         USART_InitStruct.TransferDirection = LL_USART_DIRECTION_TX_RX;
  254.         USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE;
  255.         USART_InitStruct.OverSampling = LL_USART_OVERSAMPLING_16;
  256.         /*USART1初始化*/
  257.         LL_USART_Init(USART1, &USART_InitStruct);

  258.         /*配置為全雙工異步模式*/
  259.         LL_USART_ConfigAsyncMode(USART1);

  260.         /*使能UART1模塊*/
  261.         LL_USART_Enable(USART1);
  262. }

  263. /**
  264.   * @brief  ADC校準函數(shù)
  265.   * @param  無
  266.   * @retval 無
  267.   */
  268. static void APP_AdcCalibrate(void)
  269. {
  270.   __IO uint32_t wait_loop_index = 0;
  271.   __IO uint32_t backup_setting_adc_dma_transfer = 0;
  272. #if (USE_TIMEOUT == 1)
  273.   uint32_t Timeout = 0;
  274. #endif

  275.   if (LL_ADC_IsEnabled(ADC1) == 0)
  276.   {
  277.     /* 校準時關(guān)閉ADC的DMA配置 */
  278.     backup_setting_adc_dma_transfer = LL_ADC_REG_GetDMATransfer(ADC1);
  279.     LL_ADC_REG_SetDMATransfer(ADC1, LL_ADC_REG_DMA_TRANSFER_NONE);
  280.     /* 使能校準 */
  281.     LL_ADC_StartCalibration(ADC1);

  282. #if (USE_TIMEOUT == 1)
  283.     Timeout = ADC_CALIBRATION_TIMEOUT_MS;
  284. #endif

  285.     while (LL_ADC_IsCalibrationOnGoing(ADC1) != 0)
  286.     {
  287. #if (USE_TIMEOUT == 1)
  288.       /* 檢測校準是否超時 */
  289.       if (LL_SYSTICK_IsActiveCounterFlag())
  290.       {
  291.         if(Timeout-- == 0)
  292.         {

  293.         }
  294.       }
  295. #endif
  296.     }

  297.     /* ADC校準結(jié)束和使能ADC之間的延時最低4個ADC Clock */
  298.     LL_mDelay(1);

  299.     /* 還原ADC的DMA配置 */
  300.     LL_ADC_REG_SetDMATransfer(ADC1, backup_setting_adc_dma_transfer);
  301.   }
  302. }

  303. /**
  304.   * @brief  ADC配置函數(shù)
  305.   * @param  無
  306.   * @retval 無
  307.   */
  308. static void APP_AdcConfig(void)
  309. {
  310.         /* 使能GPIOA時鐘 */
  311.         LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);

  312.         /* 配置管腳PA7為模擬輸入 */
  313.         LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_7, LL_GPIO_MODE_ANALOG);

  314.         /* ADC通道和時鐘源需在ADEN=0時配置,其余的需在ADSTART=0時配置 */
  315.         /* 配置內(nèi)部轉(zhuǎn)換通道 */
  316.         LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(ADC1), LL_ADC_PATH_INTERNAL_NONE);

  317.         /* 設(shè)置ADC時鐘 */
  318.         LL_ADC_SetClock(ADC1, LL_ADC_CLOCK_SYNC_PCLK_DIV2);

  319.         /* 設(shè)置12位分辨率 */
  320.         LL_ADC_SetResolution(ADC1, LL_ADC_RESOLUTION_12B);

  321.         /* 設(shè)置數(shù)據(jù)右對齊 */
  322.         LL_ADC_SetResolution(ADC1, LL_ADC_DATA_ALIGN_RIGHT);

  323.         /* 設(shè)置低功耗模式無 */
  324.         LL_ADC_SetLowPowerMode(ADC1, LL_ADC_LP_MODE_NONE);

  325.         /* 設(shè)置通道轉(zhuǎn)換時間 */
  326.         LL_ADC_SetSamplingTimeCommonChannels(ADC1, LL_ADC_SAMPLINGTIME_239CYCLES_5);

  327.         /* 設(shè)置觸發(fā)源為Software */
  328.         LL_ADC_REG_SetTriggerSource(ADC1, LL_ADC_REG_TRIG_SOFTWARE);

  329.         /* 設(shè)置轉(zhuǎn)換模式為連續(xù)轉(zhuǎn)換 */
  330.         LL_ADC_REG_SetContinuousMode(ADC1, LL_ADC_REG_CONV_CONTINUOUS);

  331.         /* 設(shè)置DMA模式為循環(huán) */
  332.         LL_ADC_REG_SetDMATransfer(ADC1, LL_ADC_REG_DMA_TRANSFER_UNLIMITED);

  333.         /* 設(shè)置過載管理模式為覆蓋上一個值 */
  334.         LL_ADC_REG_SetOverrun(ADC1, LL_ADC_REG_OVR_DATA_OVERWRITTEN);

  335.         /* 使用PA7  ADC通道7,掃描方向必須為向上 */
  336.         LL_ADC_REG_SetSequencerScanDirection(ADC1,LL_ADC_REG_SEQ_SCAN_DIR_FORWARD);

  337.         /* 設(shè)置非連續(xù)模式為不使能 */
  338.         LL_ADC_REG_SetSequencerDiscont(ADC1, LL_ADC_REG_SEQ_DISCONT_DISABLE);

  339.         /* 設(shè)置通道7為轉(zhuǎn)換通道 */
  340.         LL_ADC_REG_SetSequencerChannels(ADC1,LL_ADC_CHANNEL_7);

  341. }

  342. /**
  343.   * @brief  ADC使能函數(shù)
  344.   * @param  無
  345.   * @retval 無
  346.   */
  347. static void APP_AdcEnable(void)
  348. {
  349.   /* 使能ADC */
  350.   LL_ADC_Enable(ADC1);

  351.   /* 使能ADC 穩(wěn)定時間,最低8個ADC Clock */
  352.   LL_mDelay(1);
  353. }


  354. /**
  355.   * @brief  配置LED數(shù)碼管
  356.   * @param  無
  357.   * @retval 無
  358.   */
  359. static void APP_ConfigLed(void)
  360. {
  361.         /* 使能時鐘 */
  362.         LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_LED);
  363.         LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
  364.         LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOB);

  365.         LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
  366.         /* 配置 PB3, PB4, PB5 為 com1 com2 com3 */
  367.         GPIO_InitStruct.Pin = LL_GPIO_PIN_3 | LL_GPIO_PIN_4 | LL_GPIO_PIN_5;
  368.         GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
  369.         GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
  370.         GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
  371.         GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
  372.         GPIO_InitStruct.Alternate = LL_GPIO_AF_6;
  373.         LL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  374.         /* 配置 PA15 為 com0 */
  375.         GPIO_InitStruct.Pin = LL_GPIO_PIN_15;
  376.         GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
  377.         GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
  378.         GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
  379.         GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
  380.         GPIO_InitStruct.Alternate = LL_GPIO_AF_6;
  381.         LL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  382.         /* 配置 PA0, PA1, PA2, PA3, PA4, PA5, PA6 為 SEG B C D E F G DP */
  383.         GPIO_InitStruct.Pin = LL_GPIO_PIN_0 | LL_GPIO_PIN_1 | LL_GPIO_PIN_2 | LL_GPIO_PIN_3 | \
  384.                                                 LL_GPIO_PIN_4 | LL_GPIO_PIN_5 | LL_GPIO_PIN_6;
  385.         GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
  386.         GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
  387.         GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
  388.         GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
  389.         GPIO_InitStruct.Alternate = LL_GPIO_AF_3;
  390.         LL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  391.         /* 配置 PB8 為 SEG A */
  392.         GPIO_InitStruct.Pin = LL_GPIO_PIN_8;
  393.         GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
  394.         GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
  395.         GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
  396.         GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
  397.         GPIO_InitStruct.Alternate = LL_GPIO_AF_3;
  398.         LL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  399.         /* 設(shè)置 LED COM 驅(qū)動能力 */
  400.         LL_LED_SetComDrive(LED, LL_LED_COMDRIVE_LOW);

  401.         /* 設(shè)置 COM 打開數(shù) */
  402.         LL_LED_SetComNum(LED, LL_LED_COMSELECT_4COM);

  403.         /* 設(shè)置 LED 預(yù)分頻值 */
  404.         LL_LED_SetPrescaler(LED, 9);

  405.         /* 設(shè)置 LED 點亮和切換時間 */
  406.         LL_LED_SetLightAndDeadTime(LED, 0xf0, 0x10);

  407.         /* 使能 LED */
  408.         LL_LED_Enable(LED);
  409. }

  410. /******************************************************************************
  411. **函數(shù)信息 : ADC1_DMA_Config(void)               
  412. **功能描述 :ADC1 DMA通道配置
  413. **輸入?yún)?shù) :無
  414. **輸出參數(shù) :無
  415. **說    明 :
  416. ******************************************************************************/
  417. void ADC1_DMA_Config()
  418. {
  419.   /* 使能DMA1 時鐘 */
  420.   LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA1);

  421.   /* 使能syscfg 時鐘 */
  422.   LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_SYSCFG);

  423.   /* ADC對應(yīng)通道LL_DMA_CHANNEL_1 */
  424.   SET_BIT(SYSCFG->CFGR3, 0x0);

  425.   /* 配置DMA傳輸方向為外設(shè)到存儲器 */
  426.   LL_DMA_SetDataTransferDirection(DMA1, LL_DMA_CHANNEL_1, LL_DMA_DIRECTION_PERIPH_TO_MEMORY);

  427.   /* 配置DMA優(yōu)先級為高 */
  428.   LL_DMA_SetChannelPriorityLevel(DMA1, LL_DMA_CHANNEL_1, LL_DMA_PRIORITY_HIGH);

  429.   /* 配置DMA循環(huán)模式 */
  430.   LL_DMA_SetMode(DMA1, LL_DMA_CHANNEL_1, LL_DMA_MODE_CIRCULAR);

  431.   /* 配置DMA外設(shè)地址不變模式 */
  432.   LL_DMA_SetPeriphIncMode(DMA1, LL_DMA_CHANNEL_1, LL_DMA_PERIPH_NOINCREMENT);

  433.   /* 配置DMA存儲地址自增模式 */
  434.   LL_DMA_SetMemoryIncMode(DMA1, LL_DMA_CHANNEL_1, LL_DMA_MEMORY_INCREMENT);

  435.   /* 配置DMA外設(shè)傳輸方式為字 */
  436.   LL_DMA_SetPeriphSize(DMA1, LL_DMA_CHANNEL_1, LL_DMA_PDATAALIGN_WORD);

  437.   /* 配置DMA存儲器傳輸方式為字 */
  438.   LL_DMA_SetMemorySize(DMA1, LL_DMA_CHANNEL_1, LL_DMA_MDATAALIGN_WORD);

  439.   /* 配置DMA傳輸長度為128 */
  440.   LL_DMA_SetDataLength(DMA1, LL_DMA_CHANNEL_1, 128);

  441.   /* 配置DMA外設(shè)和存儲器的地址 */
  442.   LL_DMA_ConfigAddresses(DMA1, LL_DMA_CHANNEL_1, (uint32_t)&ADC1->DR,\
  443.                          (uint32_t)ADC1_Datas, LL_DMA_GetDataTransferDirection(DMA1, LL_DMA_CHANNEL_1));

  444.   /* 使能DMA傳輸完成中斷 */
  445.   LL_DMA_EnableIT_TC(DMA1, LL_DMA_CHANNEL_1);

  446.   /* DMA中斷配置 */
  447.   NVIC_SetPriority(DMA1_Channel1_IRQn, 0);
  448.   NVIC_EnableIRQ(DMA1_Channel1_IRQn);

  449.   /* 使能DMA */
  450.   LL_DMA_EnableChannel(DMA1, LL_DMA_CHANNEL_1);
  451. }
  452. /******************************************************************************
  453. **函數(shù)信息 : ADC_DMATransferCompleteCallback(void)               
  454. **功能描述 :ADC中斷回調(diào)
  455. **輸入?yún)?shù) :無
  456. **輸出參數(shù) :無
  457. **說    明 :
  458. ******************************************************************************/
  459. void ADC_DMATransferCompleteCallback()
  460. {
  461.         uint8_t i;
  462.         acc_adcval = 0;
  463.         for( i=0; i<128; i++)
  464.         {
  465.                 acc_adcval += ADC1_Datas[i];
  466.         }
  467.         mean_value = acc_adcval >>7;                //求128次ADC采樣的平均值,用移位比除法運算更高效
  468.         tempval =  ADC_Get_TempValue( mean_value);
  469. }

  470. /**
  471.   * @brief  錯誤執(zhí)行函數(shù)
  472.   * @param  無
  473.   * @retval 無
  474.   */
  475. void APP_ErrorHandler(void)
  476. {
  477.   /* 無限循環(huán) */
  478.   while (1)
  479.   {
  480.   }
  481. }

  482. #ifdef  USE_FULL_ASSERT
  483. /**
  484.   * @brief  輸出產(chǎn)生斷言錯誤的源文件名及行號
  485.   * @param  file:源文件名指針
  486.   * @param  line:發(fā)生斷言錯誤的行號
  487.   * @retval 無
  488.   */
  489. void assert_failed(uint8_t *file, uint32_t line)
  490. {
  491.   /* 用戶可以根據(jù)需要添加自己的打印信息,
  492.      例如: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  493.   /* 無限循環(huán) */
  494.   while (1)
  495.   {
  496.   }
  497. }
  498. #endif /* USE_FULL_ASSERT */
復(fù)制代碼


代碼下載:

PCB_PCB_PY32F030K2_KFB_V0.2_2024-04-28.pdf

112.85 KB, 下載次數(shù): 8, 下載積分: 黑幣 -5

PY32F030K2開發(fā)板NTC源碼.7z

1.09 MB, 下載次數(shù): 16, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
caoporn视频在线观看| 亚洲国产精品一区| 国模私拍一区二区国模曼安| 欧美日韩五区| 日韩国产专区| 国产成人av电影免费在线观看| 91一区二区在线| 色婷婷狠狠综合| 日韩精品在线一区二区| 色综合久久悠悠| 鲁片一区二区三区| 亚洲老女人av| 日韩美女视频网站| 四虎一区二区三区| 亚洲男人资源| 精品国产欧美| 99精品99| 在线视频你懂得一区| 久久手机精品视频| 7777在线视频| 最新av电影网站| 日韩中文字幕免费在线观看| 操碰在线免费| www.91精品| 国产成人av一区| 欧美精品国产精品| 亚洲综合最新在线| 成人综合久久网| 夜夜躁狠狠躁日日躁av| 狠狠激情五月综合婷婷俺| 写真福利精品福利在线观看| 国产日韩亚洲| 在线国产电影不卡| 91偷拍精品一区二区三区| 国产成人精品综合久久久久99| 中文字幕码精品视频网站| 嫩草嫩草嫩草| 欧美丝袜激情| 一区二区三区不卡视频在线观看| 久久久精品视频在线观看| 国产精品h视频| 亚洲国产精一区二区三区性色| 黄色电影免费在线观看| 国产亚洲观看| 欧美激情在线一区二区三区| 久久久久九九九九| 永久看看免费大片| 四虎精品影院在线观看视频| 日韩电影免费观| 成人精品小蝌蚪| 欧美精品久久久久久久免费观看| 免费无码av片在线观看| 后入内射欧美99二区视频| 国产美女高潮在线观看| 国产精品一级片| 不卡av在线网站| 亚洲熟妇一区二区| 国产在线观看色| 91欧美极品| 午夜伊人狠狠久久| 欧美一区二区三区电影在线观看| 福利所第一导航| 男人的天堂在线视频免费观看 | 99在线热播精品免费| 一级毛片精品毛片| 精品视频在线播放一区二区三区| 欧美高清你懂的| 成人性生交大片免费网站| 男人av在线播放| 秋霞伦理一区| 91成人在线| 成人久久精品| 国产精品视屏| 人人香蕉久久| 在线免费观看av影视天堂| 欧美日韩二三区| 亚洲欧美丝袜| 日韩福利二区| 一区二区免费在线观看| 精品久久免费观看| 国产高清www| 欧美aⅴ在线观看| 国产情侣av自拍| 中文字幕亚洲影院| 最新版天堂资源在线| 人妻丰满熟妇av无码久久洗澡 | 国产精品日韩一区二区| 久久av二区| 亚洲免费视频一区| 国产一线二线三线女| 国产aaa一级片| 91在线第一页| 鲁丝一区二区三区| 欧美一级高潮片| 一级黄色录像大片| 五月天激情婷婷| 国产成人精品男人的天堂538| 人人爱人人爽| 美女黄视频在线播放 | 免费久久99精品国产自| 一区二区三区av| 国产综合av在线| 日批视频在线看| 大吊一区二区三区| 亚洲婷婷综合网| 日韩中文字幕免费观看| 91caopron| 在线播放evaelfie极品| 免费不卡视频| 天天综合在线观看| 日韩在线不卡| 久久国产精品色| 国产精品久久久久久久久免费桃花| 午夜精品久久久| 亚洲大胆美女视频| 欧美丰满老妇厨房牲生活| 国产日韩欧美中文| 亚洲人成人77777线观看| 少妇性l交大片| 中文字幕在线1| 日韩在线播放中文字幕| 男女爱爱福利视频| 狠狠操第一页| 久久www人成免费看片中文| 亚洲第一二区| 亚洲青涩在线| 欧美三级午夜理伦三级在线观看 | 永久免费看mv网站入口78| 免费看日批视频| 四虎永久在线观看免费网站网址| 激情综合丁香| 天堂va在线| 亚洲免费专区| 精品影视av免费| 一区二区三区不卡视频| 亚洲欧美激情一区| 国产精品一区av| 大胆欧美熟妇xx| 粉嫩av懂色av蜜臀av分享| 欧美 日韩 精品| 欧美另类极品videosbest视频| 在线成年人视频| 高清亚洲高清| 中文久久精品| 亚洲精选视频在线| 久久久久久色| 久久久精品中文字幕麻豆发布| 欧美精品少妇一区二区三区| 性欧美xxxx视频在线观看| 翔田千里亚洲一二三区| 日韩精品视频一区二区| 亚洲影院一区二区三区| 18激情网站| 精品人人视频| 欧美.日韩.国产.一区.二区| 国产欧美一二三区| 亚洲精品久久久久久久久久久久| 91夜夜未满十八勿入爽爽影院 | 99精品热6080yy久久| 国产日产亚洲精品系列| 亚洲成色777777在线观看影院| 91亚洲国产成人久久精品网站| 五月婷婷之综合激情| av大片免费在线观看| 污视频网站入口| xxxx成人| 亚洲视频播放| 欧美色播在线播放| 69视频在线免费观看| www.夜夜爱| 久久高清免费视频| 草草浮力影院| 素人啪啪色综合| 免费成人在线观看| 欧美日韩不卡一区二区| 国产精品主播视频| 日本r级电影在线观看| av网站免费大全| 香蕉影院在线| 欧美**字幕| 欧美国产乱子伦 | 欧美日韩中文字幕日韩欧美| 欧美老女人xx| 欧美狂野激情性xxxx在线观| 波多野结衣亚洲色图| 欧美色手机在线观看| 欧美激情精品久久久久久变态| 天堂精品视频| 三年中国中文观看免费播放| 欧美性free免费| 黄色在线观看视频网站| 亚洲国产免费| 欧美在线观看视频一区二区三区| 国产一区视频在线播放| xxxx国产视频| 最近免费中文字幕大全免费第三页| 麻豆电影在线播放| 国产精品试看| 91精品在线麻豆| 免费看污久久久| 日本青青草视频| 国产无遮挡又黄又爽免费软件| 国模视频一区二区| 日本不卡视频在线| 日本高清成人免费播放| 国产精品成人av性教育| 在线观看国产一级片| 国产视频手机在线观看| 天堂av网在线| 亚洲在线久久| 色婷婷综合五月| 99久久久精品免费观看国产| 乐播av一区二区三区| jizzjizzjizz美国| 国产精品毛片久久久| 亚洲视频一区二区在线| 欧美系列亚洲系列| 国产69精品久久久久777| 日韩欧美国产一区二区在线播放| 国产有色视频色综合| av网在线播放| av福利网址| 亚洲三级性片| 黑人精品xxx一区| 电影午夜精品一区二区三区| 懂色av蜜桃av| 369你懂的电影天堂| 日韩精品一区二区三区免费观影| 高跟丝袜一区二区三区| 欧美日韩国产综合视频在线观看中文 | 91看片免费版| 欧美二三四区| 91丨九色丨尤物| 性欧美长视频免费观看不卡| 国产精品欧美性爱| 熟年交尾五十路视频在线播放| 国产图片一区| 亚洲大片精品永久免费| 国产成人亚洲欧美| 日韩成人免费在线观看| 成人影院免费观看| 精品一区二区三区的国产在线播放| 中文字幕日韩精品有码视频| 亚洲欧美偷拍另类| 爽爽影院免费观看视频| 色琪琪久久se色| 日韩欧美美女一区二区三区| 日本天堂免费a| 天天摸夜夜添狠狠添婷婷| 四虎国产精品成人免费影视| 亚洲精品免费看| 国产一区二区在线网站| 免费看av在线| 原纱央莉成人av片| 国产精品的网站| 久久精彩视频| 国产超碰人人模人人爽人人添| 精品欧美一区二区三区在线观看| 国产精品美日韩| 国产精品美女黄网| 最近日韩免费视频| 成人va天堂| 一区二区三区91| 日韩欧美精品一区二区| 亚洲精品人妻无码| 警花av一区二区三区| 欧美日韩美女在线观看| 正在播放精油久久| 中文字幕av手机在线| 一道在线中文一区二区三区| 3d动漫精品啪啪1区2区免费| 欧美日韩在线中文| 网站黄色在线观看| 一本到12不卡视频在线dvd| 亚洲免费高清视频| av电影在线播放| 免费毛片在线| 成人国产一区二区三区精品| 91精品国产99久久久久久红楼 | 在线免费亚洲电影| 中国女人做爰视频| 精品网站www| 亚洲一区在线| 久久国产精品久久久久久久久久| 老牛影视av老牛影视av| 成年人视频在线观看免费| 91小视频免费看| 国严精品久久久久久亚洲影视| 亚洲第一黄色片| 亚洲区小说区图片区qvod按摩 | 神马电影在线观看| 国产69精品久久久久毛片| 亚洲直播在线一区| 国产av一区二区三区| 婷婷成人影院| 亚洲日本aⅴ片在线观看香蕉| 在线免费观看成年人视频| 在线免费av电影| 日韩理论片网站| 久久福利一区二区| 九色蝌蚪av新入口| 韩国视频一区二区| 97se亚洲综合在线| 熟妇高潮一区二区高潮| av亚洲在线观看| 久久国产精品久久国产精品| 劲爆欧美第一页| 91在线成人| 精品久久久久久久久久久久久久久 | 99爱精品视频| 日批视频在线播放| 午夜国产精品视频| 欧美一级淫片aaaaaaa视频| 樱花视频在线免费观看| 日韩激情啪啪| 日韩在线观看免费高清完整版| 免费视频一二三区| 91精品在线免费视频| 国产婷婷成人久久av免费高清| 日本 欧美 国产| 国产精品第一| 日韩av最新在线观看| 少妇高潮在线观看| 日本电影久久久| 亚洲毛片一区二区| avtt天堂在线| 香蕉免费一区二区三区在线观看| 亚洲欧美综合v| 懂色av.com| 麻豆一区一区三区四区| 久久av.com| 一本到在线视频| 亚洲精品a级片| 国产精品入口免费视频一| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 亚洲国产裸拍裸体视频在线观看乱了中文| 精品国产国产综合精品| 亚洲欧美精品一区二区三区| 欧美成人毛片| 日韩av网站在线| 三级黄色录像视频| 久久av影院| 国产亚洲欧美一区| 五月天婷婷导航| 色婷婷综合网| 国产精品免费视频久久久| 日本xxxx人| 日韩av午夜在线观看| 欧美福利精品| xxx亚洲日本| 亚洲欧美一区二区在线观看| 手机视频在线观看| 永久免费网站在线| 日韩欧美色综合| 久草视频在线资源站| 日韩美女精品| 欧美成人午夜激情视频| 99精品人妻无码专区在线视频区| 激情文学一区| 免费av在线一区二区| 黄页在线播放| 亚洲自拍欧美精品| 中文字幕在线免费看线人| 亚洲日日夜夜| 国内外成人免费激情在线视频 | 亚洲精品自拍动漫在线| 亚洲成人av免费观看| √最新版天堂资源网在线| 日韩大片在线观看视频| 男人天堂2024| 亚洲手机在线| 日韩电影大全在线观看| 黄页视频在线免费观看| 在线亚洲人成电影网站色www| 三级黄色免费观看| 久久av中文| 成人av网站观看| 美女激情网站| 色天天综合色天天久久| 亚洲二区在线播放| 99久久精品费精品国产风间由美| 国产91亚洲精品一区二区三区| 男裸体无遮挡网站| 狠狠操狠狠色综合网| 玖玖爱这里只有精品| 91亚洲一区| 欧美日韩在线观看一区| 九色视频在线观看免费播放| 日韩欧美区一区二| 亚洲午夜激情视频| 久久99精品久久久久婷婷| 国产在线观看福利| 三级成人在线| 69av视频在线播放| 九九热青青草| 色悠久久久久综合欧美99| 久久这里只有精品国产| 国产精品日本| 国产日韩一区二区在线观看| 精品肉辣文txt下载|