Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11126
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-07 14:58
个人简介

做一个真诚大方优秀不带侵略性的人,永远保持活力与好奇心,今后的人生就是最自己的一场救赎。

文章分类
文章存档

2018年(1)

2017年(3)

我的朋友
最近访客

分类: 嵌入式

2018-05-11 13:40:54


1. stm32的spi双机通信问题我的stm32 spi全双工通信,主机可以发送数据,从机可以接收数据,但是主机接受不到从机发送的数据,请大家帮帮忙

stmsky 发表于 2010-4-29 08:54

主机接收从机发来的数据的时候,要主动发送DUMMY字节提供时钟



  1. static u8 SPI_Read_Byte(void)
  2. {
  3.   //等待发送信号寄存器为非空,然后发送一个字节到spi总线上
  4.   while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
  5.   SPI_I2S_SendData(SPI1, 0x00);

  6.   //等待接收信号寄存器为非空,然后从spi总线上接收一个字节
  7.   while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET) /* Wait to receive a byte */;
  8.   return SPI_I2S_ReceiveData(SPI1) /* Return the byte read from the SPI bus */;
  9. }

  10. //spi 写一个字节
  11. static void SPI_Write_Byte(u8 byte)
  12. {
  13.   //时序同发生字节一样,只是不返回读取的字节
  14.   while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) /* Loop while DR register in not emplty */;
  15.   SPI_I2S_SendData(SPI1, byte)/* Send byte through the SPI2 peripheral */;

  16.   while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET) /* Wait to receive a byte */;
  17.   SPI_I2S_ReceiveData(SPI1) /* Return the byte read from the SPI bus */;
  18. }















阅读(3714) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~