您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> TWI 无法观察*pTWI_XMT_DATA8值
本帖共有574个阅读者
发表帖子 发表投票 回复主题
TWI 无法观察*pTWI_XMT_DATA8值
rxxcsz(论坛新手)
rxxcsz
头衔:社区公民
帮派:无帮无派
帖数:50
金钱:546
积分:70
注册时间:2012/4/26
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
TWI 无法观察*pTWI_XMT_DATA8值
帮忙看下这段程序:
/**********************************************************************************
* 名称 :I2C_init
* 功能 :I2C总线的初始化
* 入口参数 :无
* 出口参数 :无
***********************************************************************************/
void I2C_init()
{
*pTWI_CONTROL=_PRESCALE | TWI_ENA;     //使能控制器与设置预分频值
*pTWI_CLKDIV=(_CLKHI<<8)|_CLKLOW;   //
*pTWI_MASTER_ADDR=IO_EXPAND_ADDR; //需要传输的地址
*pTWI_FIFO_CTL = XMTFLUSH | RCVFLUSH; //清空FIFO内数据
asm("ssync;");
*pTWI_FIFO_CTL=0;
asm("ssync;");
//*pTWI_FIFO_CTL=0;
*pTWI_INT_MASK=RCVSERV|XMTSERV|MERR|MCOMP; //使能各中断
}



/**********************************************************************************
* 名称 :I2C_write
* 功能 :I2C总线写操作  
* 入口参数 : *TWI_Data_Pointer   需发送的字符串
    TWI_TX_Length        发送字符的长度
* 出口参数 :无
***********************************************************************************/
void I2C_write(unsigned char *TWI_Data_Pointer,unsigned short TWI_TX_Length,bool _RESTART)
{
int i;

*pTWI_XMT_DATA8=*(TWI_Data_Pointer++);
*pTWI_MASTER_CTL=TWICOUNT(TWI_TX_Length)|MEN;//|RSTART|TWICOUNT(TWI_TX_Length);        //开始传输
//if(_RESTART) //需要在发送数据后接收数据
//{*pTWI_MASTER_CTL|=RSTART;}
//asm("ssync;");
for(i=0;i<(TWI_TX_Length-1);i++)
{
while(*pTWI_FIFO_STAT == XMTSTAT); //等待FIFO空闲!(*pTWI_INT_STAT & XMTSERV)
asm("ssync;");
*pTWI_XMT_DATA8=*(TWI_Data_Pointer++);
asm("ssync;");
*pTWI_INT_STAT=XMTSERV; //W1C清除空闲信息
}
I2C_stop();
}
写I2C时,看不到*pTWI_XMT_DATA8内的数据,是什么原因,而且示波器观察到的是将字数数组的第一个字节发送了两边,地址没有递增?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/7/23 10:47:28
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
寄存器的值需要通过寄存器菜单查看,或者通过printf打印查看

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/7/24 15:04:56
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159240 Call, 1 Queries, Processed in 0.031250 second(s),