標(biāo)題:
MSP430單片機(jī)+ADS292測心電圖 源程序
[打印本頁]
作者:
LSW555
時間:
2020-10-26 21:33
標(biāo)題:
MSP430單片機(jī)+ADS292測心電圖 源程序
通過MSP430來測量人體心電圖
該演示程序使用的芯片為:MSP-EXP430F5529LP
功能:
單片機(jī)采集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
單片機(jī)源程序如下:
#include "bsp.h"
long get_volt(unsigned long num);//把采到的3個字節(jié)補碼轉(zhuǎn)成有符號32位數(shù)
int main( void )
{
unsigned int temp;
union F32_Sep
{
long x;
unsigned char s[4];
};
union F32_Sep p[2];
unsigned char res,i,sum;
unsigned char data_to_send[60];//串口發(fā)送緩存
unsigned char usbstatus=0;
unsigned long cannle[2]; //存儲兩個通道的數(shù)據(jù)
long p_Temp[2]; //數(shù)據(jù)緩存
data_to_send[0]=0xAA;
data_to_send[1]=0xAA;
data_to_send[2]=0xF1;
data_to_send[3]=8;
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
bsp_Init();
ADS1292_Init(); //初始化ads1292
while(Set_ADS1292_Collect(0))//0 正常采集 //1 1mV1Hz內(nèi)部側(cè)試信號 //2 內(nèi)部短接噪聲測試
{
printf("1292寄存器設(shè)置失敗\r\n");
delay_s(1);
}
printf("寄存器設(shè)置成功\r\n");
_EINT();
P1IE |= BIT4; //P1.7中斷使能
while(1)
{
//temp = ReadRegfdc2214(0x00);//讀取第一通道的值
if(ads1292_recive_flag)
{
//p[0].x[0] =
cannle[0]=((unsigned long)ads1292_Cache[3]<<16) | ((unsigned long )ads1292_Cache[4]<<8) | ads1292_Cache[5];//獲取原始數(shù)據(jù)
cannle[1]=((unsigned long)ads1292_Cache[6]<<16) | ads1292_Cache[7]<<8 | ads1292_Cache[8];
p_Temp[0] = get_volt(cannle[0]); //把采到的3個字節(jié)轉(zhuǎn)成有符號32位數(shù)
p_Temp[1] = get_volt(cannle[1]); //把采到的3個字節(jié)轉(zhuǎn)成有符號32位數(shù)
//有符號數(shù)為再轉(zhuǎn)為無符號,無符號數(shù)為邏輯右移
cannle[0] = p_Temp[0];
cannle[1] = p_Temp[1];
data_to_send[4]=cannle[0]>>24; //25-32位
data_to_send[5]=cannle[0]>>16; //17-24
data_to_send[6]=cannle[0]>>8; //9-16
data_to_send[7]=cannle[0]; //1-8
data_to_send[8]=cannle[1]>>24; //25-32位
data_to_send[9]=cannle[1]>>16; //17-24
data_to_send[10]=cannle[1]>>8; //9-16
data_to_send[11]=cannle[1]; //1-8
for(i=0;i<12;i++)
sum += data_to_send[i];
data_to_send[12] = sum; //校驗和
//DMA_Enable(DMA1_Channel4,13);//串口1DMA
// for(i = 0; i < 13; i++)
{
//printf(data_to_send);
}
myprintf(data_to_send, 13);
ads1292_recive_flag=0;
sum = 0;
}
}
}
/*功能:把采到的3個字節(jié)轉(zhuǎn)成有符號32位數(shù) */
long get_volt(unsigned long num)
{
long temp;
//u32 iny = 0;
temp = num;
temp <<= 8;
temp >>= 8;
return temp;
}
復(fù)制代碼
所有資料51hei提供下載:
MSP430F5529_ADS1292.7z
(374.11 KB, 下載次數(shù): 33)
2020-10-26 22:08 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1