- long g_temp;
- unsigned char Read(unsigned char address)
- {
- unsigned char cmd = 0x05;
- unsigned char data = 0;
- unsigned i = 0;
- long temp = 0x00;
- for(i = 0;i<8;i++)
- {
- if( (cmd & 0x80) == 0x80 )
- {
- GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_5 , GPIO_PIN_5);
- }
- else
- {
- GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_5 , ~GPIO_PIN_5);
- }
- delay(1);
- GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_2 , ~GPIO_PIN_2);
- cmd = (cmd<<1);
- delay(1);
- GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_2 , GPIO_PIN_2);
- }
- // delay(10);
- for(i=0;i<8;i++)
- {
- if( (address & 0x80) == 0x80)
- {
- GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_5 ,GPIO_PIN_5);
- }
- else
- {
- GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_5 , ~GPIO_PIN_5);
- }
- delay(1);
- GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_2 , ~GPIO_PIN_2 );
- address = (address<<1);
- delay(1);
- GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_2 , GPIO_PIN_2 );
- }
- // delay(10);
- for(i=0;i<8;i++)
- {
- data = (data << 1);
- //g_temp = (GPIOPinRead(GPIO_PORTD_BASE, GPIO_PIN_6));
- delay(1);
- GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_2 , ~GPIO_PIN_2 );
-
- if(GPIOPinRead(GPIO_PORTD_BASE, GPIO_PIN_6))
- {
- data |= 0x01;
- }
- delay(1);
- GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_2 , GPIO_PIN_2 );
- }
- delay(1);
- GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_3 , GPIO_PIN_3);
- return data;
- }
示波器上能测试出外设寄存器已经将相应的值给出,但是使用GPIOPinRead()怎么都不能读到值,只能读到一个默认的值(0x10, 使用的是GPIOA)
|