SPI全双工模式实际测试有数据但是采集不到

2019-07-14 15:45发布

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4 ,GPIO_PIN_RESET );片选0

HAL_SPI_Transmit(&hspi1,&liming,sizeof(liming),1000);发送数据

HAL_SPI_Receive(&hspi1,lmGET_data,sizeof(lmGET_data),1000);接收数据

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4 ,GPIO_PIN_SET );片选1


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
yagan1405
1楼-- · 2019-07-14 22:15
求助求助 不明白
吔屎蛋拉雷
2楼-- · 2019-07-15 00:07
单纯发送使用HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);数据读取使用此函数HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout),尽量一个字节一个字节的读取数据;
read_opcode_addr = 0xff;
HAL_SPI_TransmitReceive(&hspi1, &read_opcode_addr, &j, 1,1000);
naiztycheng
3楼-- · 2019-07-15 03:29
 精彩回答 2  元偷偷看……
yagan1405
4楼-- · 2019-07-15 08:01
naiztycheng 发表于 2018-11-26 07:27
什么叫实际测试有数据但是采集不到?
你是说发送有数据,但是接受没有数据?
如果是这样HAL_SPI_TransmitReceive可以解决问题

实际示波器测试MISO有返回数据 见图3   但是程序上没有采集到一直是0 用了transmitreceive了
yagan1405
5楼-- · 2019-07-15 13:25
吔屎蛋拉雷 发表于 2018-11-26 07:20
单纯发送使用HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);数据读取使用此函数HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout),尽量一个字节一个字节的读取数据;
read_opcode_addr = 0xff;
H ...

这个我试过   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4 ,GPIO_PIN_RESET );
                   HAL_SPI_Transmit(&hspi1,&liming,sizeof(liming),1000);
       HAL_SPI_TransmitReceive(&hspi1, &liming, &liming2, 1, 1000);
  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4 ,GPIO_PIN_SET );
实际测试数据如下  大神帮我分析一下
yagan1405
6楼-- · 2019-07-15 17:00
吔屎蛋拉雷 发表于 2018-11-26 07:20
单纯发送使用HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);数据读取使用此函数HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout),尽量一个字节一个字节的读取数据;
read_opcode_addr = 0xff;
H ...

这个我试过   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4 ,GPIO_PIN_RESET );
                   HAL_SPI_Transmit(&hspi1,&liming,sizeof(liming),1000);
       HAL_SPI_TransmitReceive(&hspi1, &liming, &liming2, 1, 1000);
  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4 ,GPIO_PIN_SET );
实际测试数据如下  大神帮我分析一下

一周热门 更多>