当前位置: 首页 > news >正文

STM32使用串口DMA发送+空闲中断

/*
使用串口DMA发送+空闲中断
注意使能串口中断和DMA中断
考虑发送超时处理机制。
*/

void init_Myuart(void){
  HAL_UARTEx_ReceiveToIdle_DMA(&huart1,rx_buf, sizeof(rx_buf));
}

void myuart_send(uint8_t * send_data,uint16_t lenght)
{
  HAL_UART_Transmit_DMA(&huart1,(uint8_t *)&send_data,lenght));  
}

void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{
    if(huart->Instance == USART1) {
      ;
    }    
    if(huart->Instance == USART2) {  
     ;
    }
}

void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
  if (huart->Instance == USART1)  {
    ;
  }
  
  if(huart->Instance == USART2) {
    ;
  }
}

void USART1_IRQHandler(void)
{
  /* USER CODE BEGIN USART1_IRQn 0 */

  /* USER CODE END USART1_IRQn 0 */
  HAL_UART_IRQHandler(&huart1);
  /* USER CODE BEGIN USART1_IRQn 1 */
  HAL_UARTEx_ReceiveToIdle_DMA(&huart1,rx_buf, sizeof(rx_buf)-1);//回调完后需要再次启用
  /* USER CODE END USART1_IRQn 1 */
}


http://www.mrgr.cn/news/510.html

相关文章:

  • 4.1 SQL的起源与发展
  • 3D 技术对我们的生活有哪些影响?
  • 流量分析0.o
  • 安卓App开发 篇五:签名和打包
  • Kafka系列之:Kafka Connect深入探讨 - 错误处理和死信队列
  • 微前端架构下的响应式设计实现策略
  • 腾讯云短信正文模板每个变量取值最多支持6个字符出现的问题及应对方法
  • MyBatis入门
  • Ubuntu如何实现每天定时关机
  • 力扣经典题目~快乐数~零基础也能看懂哦
  • C++的依赖注入
  • 小程序分账有哪些常见的应用场景
  • C++多态
  • Qt 子窗体直接调用父窗体成员、函数、控件的方法
  • 语音助手Verbi:科技创新的未来
  • VS2017 MFC 使用3D_Button控件注意事项
  • 苍穹外卖-day03(SpringBoot+SSM的企业级Java项目实战)
  • 【STM32项目】在FreeRtos背景下的实战项目的实现过程(二)
  • 在Oracle中对比一张表的列是否在其他N张表的列
  • Linux对ubuntu的cuda相关操作