代码如下,读出来的数据不准确,按照卖家说的改一个电阻改成3.3V的,结果还是没什么用啊。
伤不起了
- unsigned long int ReadCount(void)
- {
- unsigned long Count=0x000000;
- unsigned char i;
- unsigned char tmp=0;
- _DINT();
- ADSK_CLR;
- Count=0;
- while(ADDO_R);
- for(i=0;i<24;i++)
- {
- ADSK_SET;
- DelayNus(10);
- Count=Count<<1;
- ADSK_CLR;
- DelayNus(10);
- tmp = ADDO_R;
- if(tmp==1)
- Count++;
- }
- ADSK_SET;
- DelayNus(10);
- Count=Count^0x800000;
- ADSK_CLR;
- DelayNus(10);
- _EINT();
- return(Count);
- }
复制代码
- 头文件
- #ifndef _HX711_H_
- #define _HX711_H_
- #include <msp430x14x.h>
- #define ADDO_SET P1OUT |= BIT0 //p1.0
- #define ADDO_CLR P1OUT &= ~BIT0
- #define ADDO_OUT P1DIR |= BIT0
- #define ADDO_IN P1DIR &= ~BIT0
- #define ADDO_R (P1IN & BIT0)
- #define ADSK_SET P1OUT |= BIT1 //P1.1
- #define ADSK_CLR P1OUT &= ~BIT1
- #define ADSK_OUT P1DIR |= BIT1
- extern void DelayNus(unsigned int n);
- extern unsigned long int ReadCount(void);
- #endif
复制代码额,好像不是这个问题。我上面的代码脉冲数是25个。A通道128增益
一周热门 更多>