STM32G474VET6 stm32cubemx UART配置笔记

参考教材

https://zhuanlan.zhihu.com/p/78704045
注意:这个教程里面DMA方式,少了设置中断这一步,要自己加上

cube的配置

image.png
image.png
DMA方式也需要中断,中断接收也需要中断
下面是DMA方式还需要设置的
image.png
image.png

相关代码

使用代码-中断接收普通发送

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) 
{ 
    //将接收到的数据再发送
    HAL_UART_Transmit(&huart1,recv_buff,20, 0xFFFF);//普通发送
    
}//中断接收函数  这里目前写的是普通的发送

HAL_UART_Receive_IT(&huart2, (uint8_t *)rx_buf,1);

len=sprintf(str,"adc2 = PA7:%4.2f, PC4:%4.2f, PB11:%4.2f, PB15:%4.2f, PA4:%4.2f\r\n",fval_adc2[0],fval_adc2[1],fval_adc2[2],fval_adc2[3],fval_adc2[4]);
HAL_UART_Transmit(&huart1,(unsigned char*)str,len, 0xffff);//普通发送

使用代码-DMA方式

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) 
{ 
    //将接收到的数据再发送
	HAL_UART_Transmit_DMA(&huart1,recv_buff,20);
    //如果接收的数据大于20,DMA会把前20个发送出去,下一次接收到数据会把上一次接收超过20个的部分发送出去  而不是第二次接收的数据
}//DMA的方式发送  各有千秋

HAL_UART_Receive_DMA(&huart1, recv_buff, 20);  //使能DMA接收
//使用DMA接收时,需要在主函数的主循环前加上这个

HAL_UART_Transmit_DMA(&huart1, (uint8_t*)str, len);//DMA的发送

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值