在线时间274 小时
UID354205
注册时间2015-2-13
NXP金币0
TA的每日心情 | 衰 2019-9-17 13:22 |
---|
签到天数: 238 天 连续签到: 1 天 [LV.7]常住居民III
金牌会员
 
- 积分
- 2251
- 最后登录
- 2024-10-8
|
uint16_t SPIRead2Bytes(uint16_t address)
{
_mqx_int result;
int readout;
unsigned char szTxData[2];
uint16_t TxData=0x0000;
unsigned char spireadbuf[2];
lwgpio_set_pin_output(SPI_SS1,LWGPIO_VALUE_LOW);
TxData=((address&0x003f)<<9);
szTxData[0] = (TxData>>8);
szTxData[1] = (TxData);
fwrite (szTxData, 1, 2, spi_fd1);
fflush(spi_fd1);
result=fread (spireadbuf, 1, 2, spi_fd1);
readout = (spireadbuf[0]<<8)+spireadbuf[1];
lwgpio_set_pin_output(SPI_SS1,LWGPIO_VALUE_HIGH);
return(readout);
这是我根据MQX的fread和fwrite函数编写的SPI读函数,
下面是读取0x0021地址 读出的数据是11,发现使用MQX的fread和fwrite函数始终不能同时读写。
比如我遇到了下面的情况
上图在一个CS周期内,MOSI应该是输入一个16字节的格式组包,同时MISO输出给MCU一个16字节DATA,
需要同时读写SPI,这样怎么解决呢?开发环境K64+MQX。
file:///C:\Users\POSEIDON\AppData\Roaming\Tencent\Users\675126203\QQ\WinTemp\RichOle\1U$U8GU{`HQ6OO~BMF)T9ET.png
最佳答案
very333 发表于 2016-7-18 09:29
图A &nb ...
|
|