金牌会员
 
- 积分
- 1136
- 金钱
- 1136
- 注册时间
- 2015-11-29
- 在线时间
- 146 小时
|
10金钱
void user_uart1IT_ReceiveCallback(void)
{
uint8_t temp;
if((__HAL_UART_GET_FLAG(&huart1, UART_FLAG_IDLE) != RESET)) //获取IDLE标志位,idle标志被置位
{
__HAL_UART_CLEAR_IDLEFLAG(&huart1); //清除空闲中断标志位
HAL_UART_DMAStop(&huart1); //停止串口DMA功能
//temp = ((BDMA_Channel_TypeDef *)huart1.Instance)->CNDTR; //得到当前还剩余多少个数据
temp=hdma_usart1_rx.Instance->CNDTR;
uartDMA_data.recive_count = BUFFER_SIZE - temp; //接收数据计数
HAL_UART_Receive_DMA(&huart1, uartDMA_data.rx_buffer, BUFFER_SIZE);
uartDMA_data.interrupt_idle = 1; // 接受完成标志位置1
}
}
temp=hdma_usart1_rx.Instance->CNDTR;CNDTR无法识别?是什么情况?
|
最佳答案
查看完整内容[请看2#楼]
temp=((BDMA_Channel_TypeDef *)hdma_usart1_rx.Instance)->CNDTR;
|