标题: 请高手帮忙分析程序-GPIO扩展芯片XRA1402 [打印本页]
作者: 闫Sir 时间: 2019-5-16 21:16
标题: 请高手帮忙分析程序-GPIO扩展芯片XRA1402
主要是SPI操作,芯片寄存器。
命令字节 操作数据 寄存器描述 读/写 默认数值
0x00 000 0 000 0 0x00 GSR -GPIO状态 只读 0xXX
0x01 000 0 001 0 0x02 OCR – 输出控制 读/写 0xff
0x02 000 0 010 0 0x04 PIR -输入极性反转 读/写 0x00
0x03 000 0 011 0 0x06 GCR- GPIO 组态/构造 读/写 0xFF
0x04 000 0 100 0 0x08 PUR-输入内部上拉电阻启用/禁用 读/写 0x00
0x05 000 0 101 0 0x0A IER-输入中断使能 读/写 0x00
0x06 000 0 110 0 0x0C TSCR - 输出三态控制 读/写 0x00
0x07 000 0 111 0 0x0E ISR -输入中断状态 读 0x00
0x08 000 1 000 0 0x10 REIR - 输入上升沿中断使能 读/写 0x00
0x09 000 1 001 0 0x12 FEIR - 输入下降沿中断使能 读/写 0x00
0x0A 000 1 010 0 0x14 IFR - 输入滤波器启用/禁用 读/写 0xFF
//SPI写函数
void Write_Data(unsigned char DAT)
{
unsigned char i;
SCK = 0;
for(i=0;i<8;i++)
{
SDI = DAT&0x80;
Delay_10uS();
SCK = 1;
Delay_10uS();
DAT <<= 1;
SCK = 0;
}
//主程序调用函数
void main(void){ Delay_1S();
Write_Data(0x03); //选定0x03 GCR- GPIO 组态寄存器, //该成0x06也不行
Write_Data(0x00); //写入0x00 使所有IO为 输出IO
Write_Data(0x01); //选定0x01 OCR – 输出控制寄存器, //该成0x02也不行
Write_Data(0x0f);//写入0x0F 使高四位IO为低电平,第四位IO为高电平
while(1);
}
-
XRA1402.png
(135.81 KB, 下载次数: 59)
作者: 闫Sir 时间: 2019-5-17 07:22
没高手给看一下吗?
纠结是不是芯片焊接时烧坏了。。。。
中午换一个芯片试试
作者: 幻剑心 时间: 2019-5-17 12:28
Write_Data(0x03); //选定0x03 GCR- GPIO 组态寄存器,
作者: 幻剑心 时间: 2019-5-17 12:29
Write_Data(0x06); //选定0x03 GCR- GPIO 组态寄存器
作者: 幻剑心 时间: 2019-5-17 12:30
前面是命令,后面是数据。
作者: 闫Sir 时间: 2019-5-17 14:40
这个知道啊,实际情况这样写不行
作者: ke3376028 时间: 2019-5-17 15:18
Write_Data(0x03);
Write_Data(0x06);
作者: 麻吉马巧龙 时间: 2019-5-17 17:42
Write_Data(0x06); //
选定0x03 GCR- GPIO 组态寄存器
作者: 闫Sir 时间: 2019-5-18 09:28
这回复都是玩呢???????
没有可行的建议吗?
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |