MC9S08DZ32的SPI问题

[复制链接]
 楼主| swainliu 发表于 2009-7-30 13:02 | 显示全部楼层 |阅读模式
我用MC9S08DZ32的SPI与其它处理器通信,MC9S08DZ32工作在SLAVE模式,具体代码如下:<br />void&nbsp;SPI_Slave_mode_init(void){<br />/*&nbsp;SPIC1:SPIE=1,SPE=1,SPTIE=0,MSTR=0,CPOL=1,CPHA=1,SSOE=0,LSBFE=0&nbsp;/<br />&nbsp;&nbsp;&nbsp;&nbsp;SPIC1&nbsp;=&nbsp;0xC4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />/*&nbsp;SPIC2:&nbsp;MODFEN=0,BIDIROE=0,SPISWAI=0,SPC0=0&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;SPIC2&nbsp;=&nbsp;0x00;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />/*&nbsp;SPIBR:&nbsp;SPPR2=0,SPPR1=0,SPPR0=0,SPR2=1,SPR1=0,SPR0=1&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;//SPIBR&nbsp;=&nbsp;0x04;&nbsp;&nbsp;//band&nbsp;rate&nbsp;is&nbsp;125kbps,when&nbsp;bus&nbsp;rate&nbsp;is&nbsp;4MHz<br />&nbsp;&nbsp;&nbsp;&nbsp;SPID&nbsp;=&nbsp;0x55;//想在MISO端输出的数据.<br />}<br />unsigned&nbsp;char&nbsp;high;<br />void&nbsp;main(void)&nbsp;{<br />&nbsp;&nbsp;MCU_init();<br />&nbsp;&nbsp;SPI_Slave_mode_init();<br />&nbsp;&nbsp;EnableInterrupts;&nbsp;/*&nbsp;enable&nbsp;interrupts&nbsp;*/<br />&nbsp;&nbsp;high&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;while(1){&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;__RESET_WATCHDOG();&nbsp;/*&nbsp;feeds&nbsp;the&nbsp;dog&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;delay();<br />&nbsp;&nbsp;}<br />}<br />interrupt&nbsp;15&nbsp;void&nbsp;VSPI_isr(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;SPIS_SPRF;&nbsp;&nbsp;&nbsp;/*&nbsp;Read&nbsp;the&nbsp;SPI&nbsp;Status&nbsp;Register&nbsp;and,&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;high&nbsp;=&nbsp;SPID;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;__RESET_WATCHDOG();&nbsp;/*&nbsp;feeds&nbsp;the&nbsp;dog&nbsp;*/<br />}<br />这个程序接收数据是没问题的,能正确接收数据;<br />现在的问题是,我想在接收数据的同时,在MISO端上输出数据,比如我初始化中的0X55,在用BDM调试时,MISO端能正常输出;但是一旦让程序在目标板上跑起来,MISO端就只输出0X00.搞了两天了,没弄明白是为什么,高手给指点下,谢谢了.
 楼主| swainliu 发表于 2009-7-30 13:13 | 显示全部楼层

各位高手帮忙解决一下啊.

  
 楼主| swainliu 发表于 2009-7-30 22:34 | 显示全部楼层

不会吧,没人理?

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

44

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

17

主题

44

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部