我在UART
上使用STM32F405
就好了(接收和传输)。
(while (HAL_UART_Receive_DMA(&huart4, receiveBuffer, UARTRECEIVEDBUFFERSIZE) != HAL_OK);)
现在我在我的电路中添加了一个外部FRAM
(FM25V02A
)并使用SPI来读写它。阅读工作正常。但在写入FRAM
(传输完成,数据存储完毕)后,UART
不再接收数据!然而,UART
仍像以前一样传输数据。
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{...}
中断回调不再被触发。
这就是我写给FRAM
的方式。
opcodeWREN[0] = 0b00000110;
opcodeWRITE[0] = 0b00000010;
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_1, GPIO_PIN_RESET); //chip select
HAL_SPI_Transmit(&hspi2, opcodeWREN,1,5);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_1, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_1, GPIO_PIN_RESET);
HAL_SPI_Transmit(&hspi2, opcodeWRITE,1,5);
HAL_SPI_Transmit(&hspi2, sendFRAMBufferByte,240,5); //transmitting 240byte of data
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_1, GPIO_PIN_SET);
我在使用I2C
撰写EEPROM
时遇到了同样的问题。
怎么回事?任何想法我应该看什么?谢谢!斯蒂芬