资深版主
 
- 积分
- 12012
- 金钱
- 12012
- 注册时间
- 2013-9-10
- 在线时间
- 427 小时
|
发表于 2014-1-15 10:51:11
|
显示全部楼层
回复【3楼】lkgaaa:
---------------------------------
我这样写,已经验证过可以,没产生错误,51和STM32都试过,你可以参考一下
u8 Soft_SPI_ReadWrite_Byte(u8 send_data)
{
u8 i;
// Soft_SPI_MISO_IN(); //设置MISO为输入模式
for(i = 0;i < 8;i++)
{
if(send_data & 0x80) Soft_SPI_MOSI = 1; //放上数据,优先发送LSB请修改为0x01
else Soft_SPI_MOSI = 0;
send_data <<= 1; //优先发送LSB请改为右移
Soft_SPI_CLK = 0;
Soft_SPI_CLK = 1; //上升沿发送数据
// Soft_SPI_CLK = 0; //下降沿从设备输出数据请加上此句
if(Soft_SPI_MISO) send_data |= 0x01; //返回来的是"1",返回LSB时请修改为0x80
}
Soft_SPI_CLK = 0;
return send_data; //返回接收到的数据
} |
|