linux spidev 应用_linux spi 应用程序。

/***功能:同步数据传输*入口参数:*TxBuf->发送数据首地址*len->交换数据的长度*出口参数:*RxBuf->接收数据缓冲区*返回值:0成功*开发人员:Lzy2013-5-22*/intSPI_Transfer(const...

/**

* 功 能:同步数据传输

* 入口参数 :

* TxBuf -> 发送数据首地址

* len -> 交换数据的长度

* 出口参数:

* RxBuf -> 接收数据缓冲区

* 返回值:0 成功

* 开发人员:Lzy 2013-5-22

*/

int SPI_Transfer(const uint8_t *TxBuf, uint8_t *RxBuf, int len)

{

int ret;

int fd = g_SPI_Fd;

struct spi_ioc_transfer tr ={

.tx_buf = (unsigned long) TxBuf,

.rx_buf = (unsigned long) RxBuf,

.len =len,

.delay_usecs = delay,

};

ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr);

if (ret < 1)

pr_err("can't send spi message");

else

{

#if SPI_DEBUG

int i;

pr_debug("nsend spi message Succeed");

pr_debug("nSPI Send [Len:%d]: ", len);

for (i = 0; i < len; i++)

{

if (i % 8 == 0)

printf("nt");

printf("0x%02X ", TxBuf[i]);

}

printf("n");

pr_debug("SPI Receive [len:%d]:", len);

for (i = 0; i < len; i++)

{

if (i % 8 == 0)

printf("nt");

printf("0x%02X ", RxBuf[i]);

}

printf("n");

#endif

}

return ret;

}

/**

* 功 能:发送数据

* 入口参数 :

* TxBuf -> 发送数据首地址

*len -> 发送与长度

*返回值:0 成功

* 开发人员:Lzy 2013-5-22

*/

int SPI_Write(uint8_t *TxBuf, int len)

{

int ret;

int fd = g_SPI_Fd;

ret = write(fd, TxBuf, len);

if (ret < 0)

pr_err("SPI Write errorn");

else

{

#if SPI_DEBUG

int i;

pr_debug("nSPI Write [Len:%d]: ", len);

for (i = 0; i < len; i++)

{

if (i % 8 == 0)

printf("nt");

printf("0x%02X ", TxBuf[i]);

}

printf("n");

#endif

}

return ret;

}

这个是自收自发。网上都是这个例子。

问题是,如果我只用收,或者发的功能,怎么办。

就是怎么把收发的功能分开。

第一个函数,第二个函数请无视。

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值