完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
[i][i][i][i][i][i][list]
[*]我现在在用ADS1292R,用的内部晶振,单片机用的是f149,现在的问题是读出来的寄存器状态位是错的,下面是我的程序。 #include char MST_Data = 0xAA,SLV_Data = 0xff; unsigned char a[12]; unsigned char b[12]; #define SPI_ENABLE P2OUT &=~0x08; #define SPI_DISABLE P2OUT |=0x08; unsigned char regdata[11]={0x02,0xeb,0x18,0x00,0x00,0x30,0x0f,0x40,0x02,0x01,0x03};//二通道心电测试信号,无呼吸 void Stop_Read_Data_Continuous (void) { unsigned int i=0; SPI_ENABLE; // /CS enable //for(i=0;i<10;i++); //while (!(IFG1&URXIFG0)); // Clear flag TXBUF1 =0x11; // Send SDATAC while (!(IFG2&UTXIFG1)); // Wait for TXBUF ready // UCA0IFG &= ~(UCRXIFG+UCTXIFG); // Clear flag 可能自动复位(zhao) SPI_DISABLE; // /CS disable for(i=0;i<10;i++); } void Start_Read_Data_Continuous (void) { unsigned int i=0; SPI_ENABLE; // while (!(IFG1&URXIFG0)); // Clear flag TXBUF1 =0x10; // Send RDATAC while (!(IFG2&UTXIFG1)); // Wait for TXBUF ready // UCA0IFG &= ~(UCRXIFG+UCTXIFG); // Clear flag // UCA0IFG &= ~UCRXIFG; // Clear flag SPI_DISABLE; for(i=0;i<10;i++); } void SPI_RegRead(unsigned char addr, unsigned char *buffer, unsigned char count) { unsigned int i=0,j=0; //P1OUT |=BIT1; //退出连续读数模式 Stop_Read_Data_Continuous (); //When in RDATAC mode, the RREG command is ignored.Send SDATAC MUST BE SENT //for(i=0;i<50;i++); SPI_ENABLE; // /CS enable TXBUF1 =addr+0x20; // Send address while ((IFG2 & UTXIFG1) == 0); // USART0 TX buffer ready? // UCA0IFG &= ~(IFG+UCTXIFG); // Clear flag TXBUF1 = count-1; // regedit count ge shu while (!(IFG2&UTXIFG1)); // Wait for TXBUF ready // UCA0IFG &= ~(UCRXIFG+UCTXIFG); // Clear flag for (i = 0; i |
|
相关推荐
1个回答
|
|
|
从您提供的代码片段来看,您正在使用ADS1292R进行心电信号的采集,并使用内部晶振。您提到读出来的寄存器状态位是错误的。以下是一些可能导致这个问题的原因和解决方法:
1. 硬件连接问题:请检查您的ADS1292R与单片机之间的硬件连接是否正确。确保SPI接口的MISO、MOSI、SCK和CS引脚连接正确。 2. SPI通信速率:ADS1292R的SPI通信速率可能与您的单片机不匹配。请检查您的单片机的SPI配置,确保通信速率与ADS1292R兼容。 3. 寄存器配置错误:请检查您的寄存器配置是否正确。您提供的代码中的`regdata`数组包含了一些寄存器配置值,但这些值是否适用于您的应用场景需要进一步确认。请参考ADS1292R的数据手册,确保寄存器配置正确。 4. 读取寄存器状态位的代码问题:您提供的代码片段中没有包含读取寄存器状态位的代码。请确保您的代码正确地发送读取寄存器状态位的命令,并正确地接收数据。 5. 单片机SPI驱动问题:请检查您的单片机SPI驱动是否正确配置。如果SPI驱动配置不正确,可能会导致通信错误,从而导致读取的寄存器状态位错误。 6. ADS1292R内部晶振问题:您提到使用的是内部晶振。请确保ADS1292R的内部晶振工作正常。如果内部晶振有问题,可能会导致通信错误。 综上所述,您需要检查硬件连接、SPI通信速率、寄存器配置、读取寄存器状态位的代码、单片机SPI驱动以及ADS1292R内部晶振等方面,以找到导致寄存器状态位错误的原因。希望这些建议能帮助您解决问题。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1756浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 02:53 , Processed in 0.582898 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
320