完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
显示结果
有人能帮忙看看代码有什么问题吗?有一个问题请教:SPI配置支持16Bit数据, 但是HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t timeout)却是8Bit数据,应该怎么处理? |
|
相关推荐
19个回答
|
|
|
HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout)
uint8_t *pData 这个是指针,可以传16bit的数据,只要 Size =2就可以了。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
应该还有另外一条语句是传输16bit的
|
|
|
|
|
|
This section contains the following APIs: HAL_SPI_Transmit() HAL_SPI_Receive() HAL_SPI_TransmitReceive() HAL_SPI_Transmit_IT() HAL_SPI_Receive_IT() HAL_SPI_TransmitReceive_IT() HAL_SPI_Transmit_DMA() HAL_SPI_Receive_DMA() HAL_SPI_TransmitReceive_DMA() HAL_SPI_DMAPause() HAL_SPI_DMAResume() HAL_SPI_DMAStop() HAL_SPI_IRQHandler() HAL_SPI_TxCpltCallback() HAL_SPI_RxCpltCallback() HAL_SPI_TxRxCpltCallback() HAL_SPI_TxHalfCpltCallback() HAL_SPI_RxHalfCpltCallback() HAL_SPI_TxRxHalfCpltCallback() HAL_SPI_ErrorCallback()里面涉及到的参数uint8_t * pData、 uint8_t * pTxData、 uint8_t * pRxData都是8bit的, 昨晚有一位大哥让我定义为数组,然后组合起来,但是还是有问题, uint8_t temp_buf[3] = {0}; while(1) { SPI1_L; //开启片选 HAL_SPI_Receive(&hspi1, temp_buf, 2, 1000); SPI1_H; Ret_MAX6675 = temp_buf[0]<<8 | temp_buf[1]; T = (Ret_MAX6675>>3)&0x0fff; HAL_Delay(1000); T = T*1024/4095; printf ("Temperature:%dn",T); } |
|
|
|
|
|
是不是取样太快了,将所得的数据平均一下。
|
|
|
|
|
|
学习学习
|
|
|
|
|
xieweibin 发表于 2018-11-23 07:03 赞成这个答案。 |
|
|
|
|
|
16位数的高低字节次序有没有反了?
|
|
|
|
|
|
本帖最后由 wenyangzeng 于 2017-1-21 09:53 编辑
本贴可以供你作参考: http://www.stmcu.org/module/forum/thread-566825-1-1.html 发送方式: SPI_SendData8(SPI1,data); 接收你可以类推。 |
|
|
|
|
|
|
|
|
确实应该注意一下顺序问题 当前显示的数据只有8bit,还缺一半呢,因此显示的结果肯定不正确 |
|
|
|
|
|
学习学习,谢谢楼主,支持分享
|
|
|
|
|
|
学习学习
|
|
|
|
|
|
学习学习
|
|
|
|
|
xieweibin 发表于 2018-11-23 07:03 其中有针对16Bit的传输 |
|
|
|
|
xieweibin 发表于 2018-11-23 07:03 已经改好了,现在有一个问题,就是数据偶尔会出现问题,温度是实际的2倍,是不是最高位丢失,后面数据都向前进了一位,还有为什么是偶尔出错,大部分的结果都是正确的。 |
|
|
|
|
|
儿科知识
|
|
|
|
|
|
多收一半即可
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 07:10 , Processed in 1.240839 second(s), Total 113, Slave 95 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1677