我的工程中利用TIM7定时触发中断,发送读命令给压力计。TIM7和UART2配置如下:
TIM7配置
UART配置
UART配置
发送代码:[C] 纯文本查看 复制代码 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim == &htim7) // Check if the interrupt is from TIM7
{
requestPressureSensorData(); // Request pressure sensor data
}
}
void requestPressureSensorData(void)
{
HAL_UART_Transmit_DMA(&huart2, PRESSURE_SENSOR_READ_VALUE_COMMAND, PRESSURE_SENSOR_CMD_LENGTH);
}
#define PRESSURE_SENSOR_READ_VALUE_COMMAND (const uint8_t[]){0x01, 0x03, 0x00, 0x04, 0x00, 0x01, 0xC5, 0xCB}
#define PRESSURE_SENSOR_CMD_LENGTH 8
出现问题为发送的值变更为 01 03 00 04 00 00 00 00
如果使用UART 轮询模式发送就没有这个问题。
另外这里还有一个问题需要求助大家,之前没有使用TIM7时,发现UART DMA正常模式发送并不会进入回调函数,这个原因是什么?
|