找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32驅(qū)動ADS1256程序,親測可用

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:636709 發(fā)表于 2019-11-6 16:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
24位高精度DAC模塊,ADS1256程序,親測可用。用于高精度電壓采集。

單片機源程序如下:
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include "stm32f10x.h"
  4. #include "stm32f10x_it.h"
  5. #include "io.h"
  6. #include "key.h"
  7. #include "usart.h"
  8. #include "adc.h"
  9. #include "delay.h"
  10. #include "timer.h"
  11. #include "ina219.h"


  12. unsigned long z1=0;

  13. char strg[8];
  14. float kk3;


  15. void NVIC_Configuration(void)
  16. {
  17.     NVIC_InitTypeDef NVIC_InitStructure;
  18.     /* Configure one bit for preemption priority */
  19.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  20.     /* Enable the UART4 Interrupt */
  21.     NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQn;
  22.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  23.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 6;
  24.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  25.     NVIC_Init(&NVIC_InitStructure);
  26.     /* Enable the UART5 Interrupt */
  27.     NVIC_InitStructure.NVIC_IRQChannel = UART5_IRQn;
  28.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  29.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 5;
  30.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  31.     NVIC_Init(&NVIC_InitStructure);
  32.     //Enable DMA2 Channel3 Interrupt
  33. //    NVIC_InitStructure.NVIC_IRQChannel = DMA2_Channel3_IRQn;
  34. //    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  35. //    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  36. //    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  37. //    NVIC_Init(&NVIC_InitStructure);
  38. }

  39. void SysInit (void)
  40. {        
  41.         SystemInit();//系統(tǒng)時鐘配置 配置為72MHZ
  42.         delay_init();//延時函數(shù)初始化
  43. //        IO_Init();
  44.         GPIO_init();
  45.         TIM2_Int_Init(9,719);//10Khz的計數(shù)頻率,計數(shù)到10為1ms
  46.         TIM3_Int_Init(99,7199);//10Khz的計數(shù)頻率,計數(shù)到100為10ms
  47.         Usart_Init();
  48.         NVIC_Configuration();
  49.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
  50.         //Adc_Init();
  51.         //delay_ms(300);               
  52.   ADS1256_int();
  53. }

  54. int main(void)
  55. {        
  56.         SysInit();
  57.         Brake_On();
  58.         delay_ms(1000);
  59.         delay_ms(1000);
  60.         delay_ms(1000);//等待驅(qū)動器上電完成
  61. //        MotorHome();
  62. //        PowerOnMotorHome();
  63.         while(1)
  64.         {        
  65. //                 delay_ms(1000);               
  66. //     readad();
  67. //          z1=result;
  68. //     kk3=(z1-2560)*5.0/8388652;
  69. //                          
  70. //                sprintf(strg,"VALUE3=%.3f\r\n",kk3);
  71. //                Usart4_SendStr(strg);        
  72. //     z1=0;               
  73. //    delay_ms(1000);               
  74. //        
  75.                

  76.                 /*ScanKey();
  77.                 if(ucKeyEventFlag)
  78.                 {                                
  79.                         KeyEventProcess();
  80.                         ucKeyEventFlag=0;
  81.                 }
  82. //               
  83.                 if(!ESTOP()&&(!EstopFlag))
  84.                 {
  85.                         delay_ms(10);
  86.                         if(!ESTOP()&&(!EstopFlag))
  87.                         {                        
  88.                                 EstopFlag=1;
  89.                                 MotorStartFlag=0;
  90.         //                        TIMERCOUNTER_OFF();
  91. //                                delay_ms(1000);               
  92.                         }
  93.                 }
  94.                 else if(ESTOP() && EstopFlag)
  95.                 {               
  96.                         delay_ms(10);
  97.                         if(ESTOP() && EstopFlag)
  98.                         {
  99.                                 EstopFlag=0;
  100.                                 MotorHome();
  101.                         }
  102.                 }  */
  103.         }
  104. }
復(fù)制代碼

所有資料51hei提供下載:
ADS1256電壓測試板驗證程序.7z (198.1 KB, 下載次數(shù): 213)


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

使用道具 舉報

沙發(fā)
ID:672518 發(fā)表于 2020-5-20 13:48 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

板凳
ID:861187 發(fā)表于 2020-12-16 10:49 | 只看該作者
為什么我這里接收不到信息,程序燒錄沒問題
回復(fù)

使用道具 舉報

地板
ID:526058 發(fā)表于 2021-7-2 23:52 | 只看該作者
測試一下。有點亂。
回復(fù)

使用道具 舉報

5#
ID:81196 發(fā)表于 2021-7-9 09:17 | 只看該作者
最近用多路的ADC高精度采集,正好這款芯片是個不好的選擇.又多了一個選擇.
回復(fù)

使用道具 舉報

6#
ID:111875 發(fā)表于 2024-1-22 07:50 | 只看該作者
樓主你好,這個程序我下載好了,但是連接串口沒任何反應(yīng),你有沒有遇到過,崩潰了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表