初级会员

- 积分
- 146
- 金钱
- 146
- 注册时间
- 2012-7-27
- 在线时间
- 1 小时
|
void ADS7809_Init(void)
{
RCC->APB2ENR|=1<<3; //使能PORTB时钟
GPIOB->CRH&=0x00000000;//
GPIOB->CRL&=0x000000ff;//
GPIOB->CRH|=0x82822822;//
GPIOB->CRL|=0x28228200;//
GPIOB->ODR|=0xfffC; //PB输出高
PWRD_Left = 0;
Busy_Left = 1;
CS_Left =1;
RC_Left = 1;
Dataclk_Left = 1;
PWRD_Right = 0;
Busy_Right = 1;
CS_Right = 1;
RC_Right = 1; }
u16 Get_ADS7809_Right(void) { u16 temp_Ad0 = 0; u8 i; Dataclk_Right = 0; RC_Right = 1; RC_Right = 0; CS_Right = 1; CS_Right = 0; RC_Right = 1; while(Busy_Right == 0); Dataclk_Right = 1; Dataclk_Right = 0; Dataclk_Right = 1; for(i = 0;i <16;i++) { temp_Ad0 =temp_Ad0<<1; temp_Ad0 |= Sdata_Right; Dataclk_Right = 0; Dataclk_Right = 1; } CS_Right =1; return temp_Ad0; } u16 Get_ADS7809_Left(void) //ADS7809读取{ u16 temp_Ad0 = 0; u8 i; Dataclk_Left = 0; RC_Left = 1; RC_Left = 0; CS_Left = 1; CS_Left = 0; RC_Left = 1; while(Busy_Left == 0); Dataclk_Left = 1; Dataclk_Left = 0; Dataclk_Left = 1; for(i = 0;i <16;i++) { temp_Ad0 =temp_Ad0<<1; temp_Ad0 |= Sdata_Left; Dataclk_Left = 0; Dataclk_Left = 1; } CS_Left =1; return temp_Ad0; }
我用板子读取两路AD数据,为什么只能读取一路数据。IO口配置没问题。硬件连接没问题,我两个板子相互调换了,就是 Get_ADS7809_Right () 不能读取数据。我实在是找不到了!给我个解决的方向吧。
|
|