您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF51X技术支持专区 -> 对SPI发送数据的疑问
本帖共有797个阅读者
发表帖子 发表投票 回复主题
对SPI发送数据的疑问
Dreamcal(论坛新手)
Dreamcal
头衔:社区公民
帮派:无帮无派
帖数:5
金钱:168
积分:10
注册时间:2013/4/16
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
对SPI发送数据的疑问

SPI可以在每个周期发1个WORD的数据吗? 代码如下:

void SPI0_SendWord( short int dat )
{

*pSPI0_FLG &= ~FLG2;   // 将SPI1SEL2 拉到0
while(!(*pSPI0_STAT & SPIF));   //查看SPI1传输状态是否完成
*pSPI0_TDBR = dat;
*pSPI0_FLG |= FLG2;   // 将SPI1SEL2 拉到1, 完成数据传输
}

各位看看有什么问题吗?


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/6/7 10:14:46
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
如果发送16Bit的数据,你必须在SPI控制寄存器中,将16Bit位打开。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/6/7 17:38:34
pangyan111111(论坛新手)
pangyan111111
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:110
积分:2
注册时间:2013/3/11
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
*pSPI0_TDBR = dat;
*pSPI0_FLG |= FLG2;   // 将SPI1SEL2 拉到1, 完成数据传输

这句不用等数据发完后再把片选拉高吗?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/8/25 17:00:45
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
可以在拉高数据前适当增加点延时,否则可能造成硬件不响应

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