STM32F407 串口和看门狗

本文介绍了串口通信中中断和DMA方式的应用,特别是如何实现不定长数据的接收,以及窗口看门狗的工作原理和代码实现,包括计数器配置、窗口值设置和中断回调函数的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

串口配置

串口发送和接收的方法一般有三种:查询、中断和DMA。由于CPU的资源占用问题,一般采用中断或DMA方式来实现。HAL库的串口接收只支持接收定长数据,不定长数据的接收和发送需要自己编写函数,这里我们不定长发送用DMA空闲中断实现。

中断方式

接收回调函数:每一次接受一个数据都会进入这个接收回调函数。
发送回调函数:每一次发送一个数据都会进入这个发送回调函数。
在cubemx中设置串口的中断优先级,在主函数当中设置接收语句。然后再在回调函数当中写接收语句和发送语句。

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)//回调函数
{
   
   
	HAL_UART_Transmit_IT(&huart1,buffer,3);
	HAL_UART_Receive_IT(&huart1,buffer,3);
}

DMA方式

在开启中断的前提下,再在cubemx中开启串口一的DMA接收和DMA的发送。
代码部分直接把函数中的"IT"改为“DMA”。

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)//回调函数
{
   
   
	HAL_UART_Transmit_DMA(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值