完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
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 |
|
相关推荐
29个回答
|
|
|
是这样的。我看你的SPI两个字节是连续发送。你是用这两个命令之后来实现可以从波形上明显看出中间有一段停顿。所以更好的方式使用HAL_SPI_TransmitReceive直接发送接受两个字节。你只需要第二个字节也无所谓。
另外检查SPI的CPAL和CPOL设置的是否正确。 如果从你的波形上来看。1黄色线应该是MOSI,2是MOSI。看波形似乎以上设置没有错误。 F0016TEK.JPG 来看你的第二个字节也返回了数据。那么你就需要检查一下你的数据结构设置的是否正确。liming2是什么类型的数据,是不是这里提取的时候出现了错误? |
|
|
|
|
|
求助求助 不明白
|
|
|
|
|
|
单纯发送使用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 发表于 2018-11-26 07:27 实际示波器测试MISO有返回数据 见图3 但是程序上没有采集到一直是0 用了transmitreceive了 |
|
|
|
|
吔屎蛋拉雷 发表于 2018-11-26 07:20 这个我试过 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 ); 实际测试数据如下 大神帮我分析一下 |
|
|
|
|
吔屎蛋拉雷 发表于 2018-11-26 07:20 这个我试过 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 ); 实际测试数据如下 大神帮我分析一下 |
|
|
|
|
|
本帖最后由 木子-387117 于 2017-2-21 13:32 编辑
这是实际HAL_SPI_Transmit(&hspi1,&liming,sizeof(liming),1000); HAL_SPI_TransmitReceive(&hspi1, &liming, &liming2, 1, 1000); 实际测试波形 结果liming2一直为0 |
|
|
|
|
|
本帖最后由 木子-387117 于 2017-2-21 13:20 编辑
SPI协议 先MOSI给地址再MOSI给数据的时候通过MISO返回数据 所以我 HAL_SPI_Transmit(&hspi1,&liming,sizeof(liming),1000);先给地址 HAL_SPI_TransmitReceive(&hspi1, &liming, &liming2, 1, 1000);给数据并取数据 |
|
|
|
|
|
无力了 应该不是硬件问题啊 试了两个板子 都是一样的
|
|
|
|
|
|
我也来学习学习
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
本帖最后由 木子-387117 于 2017-2-21 16:51 编辑 STM32L031的 没找到例程 |
|
|
|
|
|
贴上代码来看看
|
|
|
|
|
|
本帖最后由 木子-387117 于 2017-2-21 16:47 编辑 两种方式调用HAL库函数 单独测试过 uint8_t liming=0x06;地址 uint8_t liming2=0x00; uint8_t lmGET_data; 返回数据存放 while(1){ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4 ,GPIO_PIN_RESET ); HAL_SPI_Transmit(&hspi1,&liming2,sizeof(liming2),1000); HAL_SPI_Receive(&hspi1,&lmGET_data,sizeof(lmGET_data),1000); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4 ,GPIO_PIN_SET ); if(lmGET_data==0x6c) printf("rn LoRaOn rn"); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4 ,GPIO_PIN_RESET ); HAL_SPI_Transmit(&hspi1,&liming,sizeof(liming),1000); HAL_SPI_TransmitReceive(&hspi1, &liming2, &lmGET_data, 1, 1000); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4 ,GPIO_PIN_SET ); if(lmGET_data==0x6c) printf("rn LoRaOn rn"); } |
|
|
|
|
|
或许你的初始化配置有问题,贴出你的spi配置图or代码
|
|
|
|
|
|
本帖最后由 木子-387117 于 2017-2-21 17:03 编辑 9楼有spi协议 (今天传图太多 不让传了~~只能劳驾往上翻一翻了) /* SPI1 init function */ void MX_SPI1_Init(void) { hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES; hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; hspi1.Init.NSS = SPI_NSS_SOFT; hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_128;//ËÙ¶È×îÂýÊÔÊÔ¿´ hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial = 7; if (HAL_SPI_Init(&hspi1) != HAL_OK) { Error_Handler(); } } |
|
|
|
|
|
你这个初始化代码调用了么?看下spi1的寄存器
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
818 浏览 1 评论
994 浏览 0 评论
877 浏览 0 评论
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
4892 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
3696 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 13:10 , Processed in 1.437593 second(s), Total 110, Slave 93 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3409