论坛元老
- 积分
- 3447
- 金钱
- 3447
- 注册时间
- 2017-7-4
- 在线时间
- 869 小时
|
发表于 2017-7-20 11:19:17
|
显示全部楼层
1、检查spi初始化代码准确无误;
2、设置为全双工模式,此模式下几乎已经适合所有spi外设,不外就三个情况:双工的、只发的、只收的;
3、spi主机封装起来就4个情况:
int spi_send_then_recv(const void *send_buff,unsigned short send_size,void *recv_buff,unsigned short recv_size); //发送完再接收,最常用的,常见于读寄存器。
int spi_send_then_send(const void *send_buff1,unsigned short send_size1,const void *send_buff2,unsigned short send_size2);//发送完再发送,最常用的,常见于写寄存器。
int spi_send_recv(const void *send_buff,void *recv_buff,unsigned short data_size);//非标准spi,2个情况:1、发送完同时接收完,看时序图(如:一些控制芯片,同时返回控制状态);2、只接收,此时发送动作并非真的发送,只是用来产生spi时钟(如ADC芯片,12位、14位、16位常见)。
int spi_send(const void *send_buff,unsigned short send_size); //只发送。 |
|