佚名通过本文主要向大家介绍了spi数据传输,spi数据格式,spi读数据,spi读取数据,spi丢数据严重等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: SPI获取数据的问题
描述:
发现在arm在要获取液晶的数据时(通过SPI通信),出现获取不到的情况,而SPI的数据寄存器却能得到,
请问这是怎么回事?
而且我们也通过尝试,发现两个奇怪的问题:
《1》在降低SPI的频率时,arm有时却能获取到数据。
《2》修改SPI的通信代码,arm也可以获取到数据,
原始代码:
在将data1_rx的初始值改为0x01后,data1_rx的值可以获得收到的数据,请问这是什么原因?
描述:
spi
我们使用的是SPI 3线的方式(MOSI,MISO共用一条数据线),装置为arm+SPI(液晶),发现在arm在要获取液晶的数据时(通过SPI通信),出现获取不到的情况,而SPI的数据寄存器却能得到,
请问这是怎么回事?
而且我们也通过尝试,发现两个奇怪的问题:
《1》在降低SPI的频率时,arm有时却能获取到数据。
《2》修改SPI的通信代码,arm也可以获取到数据,
原始代码:
unsigned char data1_tx = 0xff;
unsigned char data1_rx = 0x00;
struct spi_transfer t1 = {
.tx_buf = &data1_tx,
.rx_buf = &data1_rx,
.len = 1,
};
struct spi_message m;
wfet_lcd_dotmatrix_write_cmd(1);
spi_message_init(&m);
spi_message_add_tail(&t1, &m);
result = spi_sync(wfet_dotmatrix_datap->spi_device, &m);
unsigned char data1_tx = 0xff;
unsigned char data1_rx = 0x01;
struct spi_transfer t1 = {
.tx_buf = &data1_tx,
.rx_buf = &data1_rx,
.len = 1,
};
struct spi_message m;
wfet_lcd_dotmatrix_write_cmd(1);
spi_message_init(&m);
spi_message_add_tail(&t1, &m);
result = spi_sync(wfet_dotmatrix_datap->spi_device, &m);
在将data1_rx的初始值改为0x01后,data1_rx的值可以获得收到的数据,请问这是什么原因?