OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 341|回复: 4

STM32H750 SPI发送32位数据求助

[复制链接]

34

主题

76

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
488
金钱
488
注册时间
2015-2-5
在线时间
113 小时
发表于 2024-7-26 20:41:22 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 阿超写代码 于 2024-7-26 20:47 编辑

单片机是STM32H750VBT6   SPI的初始化配置为32位模式   使用HAL库  但是库函数发送函数定义的uint8格式 参数       HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size,uint32_t Timeout)

我是这样调用的  发现通讯失败 还请使用过的大神指导下


uint32_t SPI2_read_write_byte(uint32_t txdata)
{
         uint32_t rxdata;
         if(HAL_SPI_TransmitReceive(&hspi2,(uint8_t *)&txdata,(uint8_t *)&rxdata,1,1000)!=HAL_OK)
         {
            return 0;
         }
   return rxdata;       

}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

76

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
488
金钱
488
注册时间
2015-2-5
在线时间
113 小时
 楼主| 发表于 2024-7-26 20:43:48 | 显示全部楼层
本帖最后由 阿超写代码 于 2024-7-26 20:48 编辑

  hspi2.Instance = SPI2;   hspi2.Init.Mode = SPI_MODE_MASTER;  
hspi2.Init.Direction = SPI_DIRECTION_2LINES;
  hspi2.Init.DataSize = SPI_DATASIZE_32BIT;   
hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;  
hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;  
hspi2.Init.NSS = SPI_NSS_SOFT;
  hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4;
  hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi2.Init.TIMode = SPI_TIMODE_DISABLE;  
hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  hspi2.Init.CRCPolynomial = 0x0;   
hspi2.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
  hspi2.Init.NSSPolarity = SPI_NSS_POLARITY_LOW;  
hspi2.Init.FifoThreshold = SPI_FIFO_THRESHOLD_01DATA;
   hspi2.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;  
hspi2.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
  hspi2.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_00CYCLE;  
hspi2.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_00CYCLE;
  hspi2.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE;  
hspi2.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_ENABLE;   
hspi2.Init.IOSwap = SPI_IO_SWAP_DISABLE;  
if (HAL_SPI_Init(&hspi2) != HAL_OK)   {     Error_Handler();   }
回复

使用道具 举报

11

主题

2103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4584
金钱
4584
注册时间
2015-1-10
在线时间
573 小时
发表于 2024-7-29 10:09:36 | 显示全部楼层
32位转8位后发送,发送4个字节
回复

使用道具 举报

58

主题

6291

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11405
金钱
11405
注册时间
2014-4-1
在线时间
1282 小时
发表于 2024-7-29 11:49:40 | 显示全部楼层

上示波器,看看波形对不对。


回复

使用道具 举报

19

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2020-10-18
在线时间
28 小时
发表于 2024-7-29 15:59:30 | 显示全部楼层
用逻辑分析仪看看波形
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 10:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表