CH376SPI通信

现在正看CH376下的SPI_HW程序,其种有个函数的功能不明白,就是CH376_PORT_INIT()这个函数是对CH376的SPI接口进行初始化,还是对单片机的SPI接口进行初始化,如果是对单片机的SPI接口已经进行过初始化设置,还需要对CH376的SPI接口进行初始化吗,谢谢

您还是没明白,CH376的SPI接口不需要初始化。


呵呵...不是,是刚才看那条消息要翻页,所以新发了一条,还是要谢谢你


看程序时,有几句不明白,请指教 len = xReadCH376Data( ); //读取下传的数据长度 for(i=0;i!=len;i++) data_buffer[i] = xReadCH376Data( ); //依次读取下传数据 len=xReadCH376Data( )函数的反回值和data_buffer[i] = xReadCH376Data( )一个是数据长度,一个是实际的数据,我看Spi376Exchange( )函数的反回值,应该是数据寄存器里的数据,谢谢


是SPI数据寄存器里的数据,就像你通过串口收数据,也要去读串口的数据寄存器。


我不明白的是"len = xReadCH376Data( ); //读取下传的数据长度"怎么会是数据的长度,而 "for(i=0;i!=len;i++) data_buffer = xReadCH376Data( ); //依次读取下传数据"这句就是数据啊


那你就看手册吧。CH376DS1,里面有说明


手册上面写的很清楚,CH376首先返回的是数据长度,然后才是后续数据


我在用CH376的SPI接口实现DSP和PC机通信时,现在初始化后,在电脑的设备管理器中,能看见CH376这个模块,但我查看初始化时的函数xReadCH376Data( ) 的返回值,不是CMD_RET_SUCCESS,而且在前面的测试命中,返回值也不是0xaa,现在不知道初始化是否成功,


那说明没有通讯不对,必须要测试命令通过,仔细检查一下你的SPI接口是否有问题。一般都是时序有问题造成的


加点延时试试,命令和数据之间2us左右,数据和数据之间在1us左右


测试结果是0x55,硬件连接应该没问题,CH376的SPI接口的8个引脚,我一共用了六个,就是RSTI和+5V的电源引脚没用,我用的TI DSP2812的主频是150M,给其SPI接口的时钟频率是37.5M,我现在按你的说法,按150M的时钟频率计算,在命令和数据之间加2us左右的延时,数据和数据之间加1us左右的延时,现在的波特率是375K,


SPI接口的时钟频率是37.5M?CH376DS1上已经说明CH376的SPI接口的最大时钟为24MHZ,明显你的频率已经远远超过了。


哦,没注意到这些,,


只有登录才能回复,可以选择微信账号登录