需要达成一个目的,即按照如图所示写一个程序,来发送数据
具体如下:一个io口串行发送数据,一个io口发送时钟,一个io口发送ltch
key0按下,io口发送数据0x9e,并且ltch拉低,key1按下,在刚才所发送数据上加0x0a。
我是实在没办法了,写不出来,头发掉了一堆。。。还望各位大神能给予一定帮助。
若各位大神实在没空,告诉我怎么写也行尽量详细一点,我现在只能发送一个时钟,如何根据时钟发送数据,完全不会
也就是说,如何用io口串行发送一串数据,在这基础上如何根据时钟按照时序图那样发送数据?
还望各位大神指教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
可我用上spi,就是不通啊,是不是我的速率太低?
示波器显示32那几个管脚输出波形没问题,就是芯片不工作,比如说我这个芯片正常工作电流是0.08A,我接上就是0.05A,就是不通,再接上频谱分析仪,显示的依然不通。。。(都是粗测)
是不是我的速率太低(一百多khz,芯片极限是几十ns),还是什么问题呢
对了,芯片那个ltch端,我常接地了,是不是这个原因呢?
spi主机封装起来就4个情况,通杀所有标准的、非标准的spi,而且方便移植:
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); //只发送。
那个,你是不是误会我的意思了,我的spi输出没有问题,就是芯片不通。。。
spi的问题我也问过了,也是您回答的,已经解决了,而且波形无比正确,就是芯片无法正常工作。。。
一周热门 更多>