在线时间0 小时
UID274286
注册时间2011-3-31
NXP金币0
该用户从未签到
新手上路

- 积分
- 24
- 最后登录
- 1970-1-1
|
我们买的是龙丘的多功能开发板(V5.0),咖啡色的.SPI程序实验中.出现的一个疑问,
我们在使用spi双机通信的时候,如果我这么写:
for(loop = 1; loop < 256; loop++) {
Dly_ms(200);
SPI_Write_Byte(loop);
Dly_ms(100);
spich[loop - 1] = SPI_Read_Byte();
}
但是我如果把spich[loop - 1] = SPI_Read_Byte(); 这句注释掉.那么对方只能收到偶数位或者奇数位.比如2,4,6,8, 或者 1,3,5,7
发送方没有开中断,接收方只是进入中断并把数据存储在数组里面.
如果这句没有注释,那么每个数都能收到.
因为在注释掉以后,如果单步运行,那么对方是可以每个值都收到的
如果全速运行,就只能收到奇数位或者偶数位
请大家帮忙解决:
============================================================================
硬件电路:
发送端为龙丘开发板,芯片MC9S12DG128B: 使用SPI0, 引脚使用 PS4/MISO0; PS5/MOSI0; PS6/SCK0; PS7/SS0; GND;
接收端,自己画的板子,芯片MC9S08AW60: 使用SPI1; 引脚使用 对应的MISO, MOSI, SCK, SS1, GND
其中 GND共线, mois和miso没有反接,是一一对应的接法. SCK共线.
=============================================================================
发送端程序,使用code warrior 5.0
代码如下:
#include /* common defines and macros */
#include /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
unsigned char spich[255]=0;
unsigned char i = 0;
unsigned char loop = 0;
//-----------------------------------------------------
//延时1毫秒
void Dly_ms(int ms)
{
int ii,jj;
if (ms
|
|