新手入门
- 积分
- 21
- 金钱
- 21
- 注册时间
- 2013-7-10
- 在线时间
- 0 小时
|
发表于 2013-7-10 16:26:27
|
显示全部楼层
也再搞 出现了点问题 求指点 void WriteRawIO(unsigned char Address,unsigned char value)
{
ALE=0;
RC500NCS=1;
//RC500NRD=0;
RC500NWR=1;
// ALE=0;
P0(Address);
ALE=1;
delay_us(1) ;
ALE=0;
delay_us(1) ;
RC500NCS=0;
P0(value);
// delay_us(1);
RC500NWR=0;
delay_us(1) ;
RC500NWR=1;
RC500NCS=1;
}
///////////////////////////////////////////////////////////////////////
// 从一个地址读出一个数据
///////////////////////////////////////////////////////////////////////
unsigned char ReadRawIO(unsigned char Address)
{
u8 value;
GPIO_InitTypeDef GPIO_InitStructure;
//ALE=0;
RC500NCS=1;
RC500NRD=1;
ALE=0;
P0(Address);
ALE=1;
delay_us(1);
ALE=0;
RC500NCS=0;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能Pc端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; //端口变成输入
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIOC->IDR&=0xff;
RC500NRD=0;
delay_us(1);
value=GPIOC->IDR;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能Pc端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; //端口便成输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
RC500NRD=1;
RC500NCS=1;
//delay_us(1);
return value;
}
读写函数 测试都正确 就是综合在一块出不了结果 |
|