首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

继续问个SPI通信的问题,大家帮忙看看

有没有用示波器看过三个通讯脚上的波形?
海纳百川  有容乃大

继续问个SPI通信的问题,大家帮忙看看

在调SPI通信的过程中,发现一个很奇怪的问题
我的slave能正常接收master传来的数据,可是master却不能总是接不对slave的数据,不知道什么原因,开始认为是不是miso角没有上拉引起,现在加了上拉似乎也没有什么改善。
unsigned char n;
SPI0_SCR; //clear overflow flag
SPI0_DRR; //clear overflow flag
while ( !(SPI0_SCR & 0x0001) )asm(nop);
for ( n = 0; n < 34; n++ ){
SPI0_DTR = 0x0F0F;
while ( !(SPI0_SCR & 0x0008) )asm(nop);
Receive[n] = SPI0_DRR; //Receive is a data array.
delayus(4); //delay function.
}

master的发送和接收都是查询完成,没开中断,程序如上。
想向大家请教下什么原因会引起这种问题,看到的都给点建议啊,谢谢。

[此贴子已经被作者于2007-1-29 21:08:19编辑过]

世界上失败只有一种那就是半途而废。
由于以前没遇上过类似的情况,所以PCB走线都在内层走了,不好看,伤心。
现在收到的数据好像总是左移了一位,不知道是哪里设置有问题,
继续研究中,不行就只能过两天再弄块调试板出来看看了....
世界上失败只有一种那就是半途而废。
现在看来主要是传输干扰的原因,波特率调的太高了
看来波特率不宜太高,调低点好多了。
世界上失败只有一种那就是半途而废。
返回列表