[mw_shl_code=c,true] while(Tx_Idx < BufferSize)
{
/* 等待 SPI2 发送缓冲空 */
while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);
/* SPI2 发送数据,等待主机SPI1的发送,可以产生时钟脉冲 */
SPI_I2S_SendData(SPI2, SPI2_Buffer_Tx[Tx_Idx]);
/* 等待 SPI1 发送缓冲空 */
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
/* SPI1 发送数据 */ //
SPI_I2S_SendData(SPI1, SPI1_Buffer_Tx[Tx_Idx++]); //(用DMA的方式进行发送)
MYDMA_Config(DMA1_Channel3,(u32)&SPI1->DR,(u32)p,2); //DMA从内存读取数据传输给SPI1,进行发生
printf("DMA send is %s\n",*p++); //测试是否可以从DMA发生数据
SPI_I2S_DMACmd(SPI1,SPI_I2S_DMAReq_Tx,ENABLE); //使能SPI1的DMA发送请求
MYDMA_Enable(DMA1_Channel3); //开启一次DMA传输
/* 等待 SPI1 接收数据完毕 */
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
/***********SPI1_RX接收*****************/
SPI1_Buffer_Rx[Rx_Idx] = SPI_I2S_ReceiveData(SPI1);
printf("SPI1_Buffer_Rx[%d] is %d\n",i++,SPI1_Buffer_Rx[Rx_Idx]);
/* 等待 SPI2 接收数据完毕 */
while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET);
/* 读出 SPI2 接收的数据 */
SPI2_Buffer_Rx[Rx_Idx++] = SPI_I2S_ReceiveData(SPI2);
// printf("SPI2_Buffer_Rx[%d] is %d\n",j++,SPI2_Buffer_Rx[Rx_Idx++]);
printf("\n");
} [/mw_shl_code]
|