找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

MSP430單片機+ADS292測心電圖 源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:824257 發(fā)表于 2020-10-26 21:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
通過MSP430來測量人體心電圖
該演示程序使用的芯片為:MSP-EXP430F5529LP

功能:
    單片機采集ADS1292模塊數(shù)據(jù),通過串口輸出。
串口:
    UART1
    波特率:115200
    停止位:1
    數(shù)據(jù)為:8
    奇偶校驗:無   


引腳定義及連線:
    1292模塊--MSP430:
    VDD   --    3.3V
    GND   --    GND
    DRDY  --    P1.4
    CS       --    P3.3
    SCK     --    P3.2
    MISO  --    P3.1
    MOSI  --    P3.0
    RESET --    3.3V
    START --    GND

單片機源程序如下:
  1. #include "bsp.h"

  2. long get_volt(unsigned long num);//把采到的3個字節(jié)補碼轉(zhuǎn)成有符號32位數(shù)

  3. int main( void )
  4. {
  5.     unsigned int temp;
  6.     union F32_Sep
  7.     {
  8.             long x;
  9.             unsigned char s[4];
  10.     };
  11.     union F32_Sep p[2];
  12.     unsigned char res,i,sum;       
  13.                 unsigned char data_to_send[60];//串口發(fā)送緩存
  14.                 unsigned char usbstatus=0;       
  15.                 unsigned long cannle[2];        //存儲兩個通道的數(shù)據(jù)
  16.                 long        p_Temp[2];        //數(shù)據(jù)緩存
  17.        
  18.                 data_to_send[0]=0xAA;
  19.                 data_to_send[1]=0xAA;
  20.                 data_to_send[2]=0xF1;       
  21.                 data_to_send[3]=8;

  22.   // Stop watchdog timer to prevent time out reset
  23.   WDTCTL = WDTPW + WDTHOLD;
  24.   bsp_Init();
  25.   ADS1292_Init();        //初始化ads1292       
  26.   while(Set_ADS1292_Collect(0))//0 正常采集  //1 1mV1Hz內(nèi)部側(cè)試信號 //2 內(nèi)部短接噪聲測試
  27.   {       
  28.     printf("1292寄存器設(shè)置失敗\r\n");
  29.     delay_s(1);               
  30.   }       
  31.   printf("寄存器設(shè)置成功\r\n");
  32.   _EINT();
  33.   P1IE |= BIT4; //P1.7中斷使能
  34.   while(1)
  35.   {
  36.     //temp = ReadRegfdc2214(0x00);//讀取第一通道的值
  37.     if(ads1292_recive_flag)
  38.     {               
  39.       //p[0].x[0] =
  40.       cannle[0]=((unsigned long)ads1292_Cache[3]<<16) | ((unsigned long )ads1292_Cache[4]<<8) | ads1292_Cache[5];//獲取原始數(shù)據(jù)               
  41.       cannle[1]=((unsigned long)ads1292_Cache[6]<<16) | ads1292_Cache[7]<<8 | ads1292_Cache[8];

  42.       p_Temp[0] = get_volt(cannle[0]);        //把采到的3個字節(jié)轉(zhuǎn)成有符號32位數(shù)
  43.       p_Temp[1] = get_volt(cannle[1]);        //把采到的3個字節(jié)轉(zhuǎn)成有符號32位數(shù)

  44.       //有符號數(shù)為再轉(zhuǎn)為無符號,無符號數(shù)為邏輯右移
  45.       cannle[0] = p_Temp[0];
  46.       cannle[1]        = p_Temp[1];
  47.       data_to_send[4]=cannle[0]>>24;                //25-32位
  48.       data_to_send[5]=cannle[0]>>16;          //17-24
  49.       data_to_send[6]=cannle[0]>>8;                //9-16
  50.       data_to_send[7]=cannle[0];                         //1-8

  51.       data_to_send[8]=cannle[1]>>24;                //25-32位
  52.       data_to_send[9]=cannle[1]>>16;          //17-24
  53.       data_to_send[10]=cannle[1]>>8;                //9-16
  54.       data_to_send[11]=cannle[1];                         //1-8

  55.       for(i=0;i<12;i++)
  56.             sum += data_to_send[i];                                                       
  57.       data_to_send[12] = sum;        //校驗和                                                                                                                                               
  58.       //DMA_Enable(DMA1_Channel4,13);//串口1DMA
  59.      // for(i = 0; i < 13; i++)
  60.       {
  61.         //printf(data_to_send);
  62.       }
  63.      myprintf(data_to_send, 13);
  64.                                                                                                                            
  65.       ads1292_recive_flag=0;
  66.       sum = 0;       
  67.      }
  68.   }
  69. }

  70. /*功能:把采到的3個字節(jié)轉(zhuǎn)成有符號32位數(shù) */
  71. long get_volt(unsigned long num)
  72. {               
  73.   long temp;       
  74.   //u32 iny = 0;
  75.   temp = num;
  76.   temp <<= 8;
  77.   temp >>= 8;
  78.   return temp;
  79. }
復(fù)制代碼

所有資料51hei提供下載:
MSP430F5529_ADS1292.7z (374.11 KB, 下載次數(shù): 33)

評分

參與人數(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ù) 返回頂部 返回列表