Stm32 SPI味噌值255

Stm32 SPI味噌值255,stm32,stm32f4,Stm32,Stm32f4,我正在尝试将我的程序移动到hal,我的SPI只接收255个。我忘记设置什么了 阅读功能: uint8_t addressMsb[1] = { READ_ADDRESS | RTD_MSB_ADDRESS }; uint8_t addressLsb[1] = { READ_ADDRESS | RTD_LSB_ADDRESS }; uint8_t Temp_Msb[1]; uint8_t Temp_Lsb[1]; ... PT_CS1_LOW; HAL_SPI_Transmit(&hspi

我正在尝试将我的程序移动到hal,我的SPI只接收255个。我忘记设置什么了

阅读功能:

uint8_t addressMsb[1] = { READ_ADDRESS | RTD_MSB_ADDRESS };
uint8_t addressLsb[1] = { READ_ADDRESS | RTD_LSB_ADDRESS };

uint8_t Temp_Msb[1];
uint8_t Temp_Lsb[1];
...
PT_CS1_LOW;
HAL_SPI_Transmit(&hspi1, (uint8_t*) addressMsb, 1, 10);
HAL_SPI_Receive(&hspi1, (uint8_t*) Temp_Msb, 1, 10);
PT_CS1_HIGH;
for(int i = 0; i<10;i++);
PT_CS1_LOW;
HAL_SPI_Transmit(&hspi1, (uint8_t*) addressLsb, 1, 10);
HAL_SPI_Receive(&hspi1, (uint8_t*) Temp_Lsb, 1, 10);
PT_CS1_HIGH;
...
我知道这不是硬件故障,因为这个板上有一个自制的功能可以工作。(频率和设置相同)

旧功能:

if (!((SPI1)->CR1 & SPI_CR1_SPE)){
while(((SPI1)->SR & (SPI_SR_TXE | SPI_SR_RXNE)) == 0 || (SPI1)->SR & SPI_SR_BSY))SPI_WAIT(SPIx);

SPI1->DR = data;

while(((SPI1)->SR & (SPI_SR_TXE | SPI_SR_RXNE)) == 0 || ((SPI1)->SR & SPI_SR_BSY))SPI_WAIT(SPIx);

return SPI1->DR;
}
伙计们,我错了, 如果有人需要一个MAX31865的工作示例,您可以在那里获取代码。。。我关闭了我的电脑和硬件5分钟,现在everthink甚至可以和HAL一起工作。这是可疑的,它确实与旧的程序和哈尔不工作,并在重新启动后都在工作。。。但现在我知道HAL代码是从原则上说的,并没有错

READ_ADDRESS = 0x00
RTD_MSB_ADDRESS = 0x01
RTD_LSB_ADDRESS = 0x02
伙计们,我错了, 如果有人需要一个MAX31865的工作示例,您可以在那里获取代码。。。我关闭了我的电脑和硬件5分钟,现在everthink甚至可以和HAL一起工作。这是可疑的,它确实与旧的程序和哈尔不工作,并在重新启动后都在工作。。。但现在我知道HAL代码是从原则上说的,并没有错

READ_ADDRESS = 0x00
RTD_MSB_ADDRESS = 0x01
RTD_LSB_ADDRESS = 0x02

想透露一下你的自制功能吗?必须能够很容易地将您的函数映射到HAL库。该函数已添加到上面:是否愿意公开您的自制函数?必须能够非常轻松地将您的函数映射到HAL lib。该函数现在添加到上面: