-
大概知道了, CK100的仿真速度太慢了, 如果挂着仿真器单步运行, 是不会得到正确结果了,
只要程序对了, 让它直接运行就可以了
-
晕....突然能用了
昨天公司停电,就没测试了, 然后今天接上电后就正确的运行了...
-
测试595的时候,我发现LPC2214的一个有意思的地方, 如果SSP0CR1中的LBM为0, 则在下一次送数据的时候, MISO能收到上一次的数据.
如果LBM为1, 则本次送数据的时候MISO就能收到.
不知道其他芯片的SSP是不是也是这样.
-
硬件是不会了, AVR, STM32, LPC221都用过了
LPC1114的SSP需不需要加上拉电阻?
-
改慢速度也不行啊,
我将 SSP0CPSR 改成了200, 示波器上明显的看到了时钟的变化, 可MISO的波行还是没变,还是在电压降低到1/3的时候就提起来了...
发送CM0的时候, 总是返回超时
[ 本帖最后由 ldqmoon 于 2010-7-13 08:18 编辑 ]
-
/********************************************************************************************************************* 函数名称: void SPI_SendByte() Name: void SPI_SendByte()** 功能描述: 通过SPI接口发送一个字节 Function: send a byte by SPI interface** 输 入: INT8U byte: 发送的字节 Input: INT8U byte: the byte that will be send** 输 出: 无 Output: NULL********************************************************************************************************************/void SPI_SendByte(INT8U byte){ INT8U temp; SSP0DR = byte; while ((SSP0SR & 0x01) == 0) { /* 等待TFE置位,即发送FIFO空 */ } temp=SSP0DR;}
/********************************************************************************************************************* 函数名称: INT8U SPI_RecByte() Name: INT8U SPI_RecByte()** 功能描述: 从SPI接口接收一个字节 Function: receive a byte from SPI interface** 输 入: 无 Input: NULL** 输 出: 收到的字节 Output: the byte that be received********************************************************************************************************************/INT8U SPI_RecByte(void){ INT8U temp; SSP0DR = 0xff; while ((SSP0SR & 0x01) == 0) { /* 等待TFE置位,即发送FIFO空 */ } temp=SSP0DR; return temp; }
INT8U SPI_SendRecByte(INT8U byte){ INT8U temp;
SSP0DR = byte; while ((SSP0SR & 0x01) == 0) { /* 等待TFE置位,即发送FIFO空 */ } temp=SSP0DR; return temp;}
用示波器观察, MISO上没有正确的低电平, 电压总是下降到1/3的位置后又抬高了.
CS, SCK, MOSI的波形都没问题
这是怎么回事啊
谢谢先啊!!