找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2613|回复: 0
打印 上一主题 下一主题
收起左侧

MSP430单片机+ADS292测心电图 源程序

[复制链接]
跳转到指定楼层
楼主
ID:824257 发表于 2020-10-26 21:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过MSP430来测量人体心电图
该演示程序使用的芯片为:MSP-EXP430F5529LP

功能:
    单片机采集ADS1292模块数据,通过串口输出。
串口:
    UART1
    波特率:115200
    停止位:1
    数据为: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个字节补码转成有符号32位数

  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];//串口发送缓存
  14.                 unsigned char usbstatus=0;       
  15.                 unsigned long cannle[2];        //存储两个通道的数据
  16.                 long        p_Temp[2];        //数据缓存
  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内部侧试信号 //2 内部短接噪声测试
  27.   {       
  28.     printf("1292寄存器设置失败\r\n");
  29.     delay_s(1);               
  30.   }       
  31.   printf("寄存器设置成功\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];//获取原始数据               
  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个字节转成有符号32位数
  43.       p_Temp[1] = get_volt(cannle[1]);        //把采到的3个字节转成有符号32位数

  44.       //有符号数为再转为无符号,无符号数为逻辑右移
  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个字节转成有符号32位数 */
  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. }
复制代码

所有资料51hei提供下载:
MSP430F5529_ADS1292.7z (374.11 KB, 下载次数: 32)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表