|
发表于 2018-12-6 18:24:39
|
显示全部楼层
发送阶段等待TXE,发送完毕后等RXNE即可,你试试。
- /* SPI_SR位定义 */
- #define RXNE 0x01
- #define TXE 0x02
- #define BSY 0x80
- /*
- *********************************************************************************************************
- * 函 数 名: SendBuf
- * 功能说明: 通过SPI接口发送多个字节
- * 形 参: buf 数据地址
- * sz 发送数据大小
- * 返 回 值: __TRUE
- *********************************************************************************************************
- */
- static BOOL SendBuf (U8 *buf, U32 sz)
- {
- U32 i;
- for (i = 0; i < sz; i++)
- {
- SPI_SelectHard->DR = buf[i];
- /* 等待发送完成 */
- while (!(SPI_SelectHard->SR & TXE));
- SPI_SelectHard->DR;
- }
-
- /* 等待接收完成 */
- while (SPI_SelectHard->SR & (BSY | RXNE))
- {
- SPI_SelectHard->DR;
- }
- return (__TRUE);
- }
复制代码 |
|