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

蓝桥杯嵌入式(总结自用)

3.16

今天从开头学到串口的DMA转运,看的是西风的视频(下面附上链接)

Uart、DMA、ADC_哔哩哔哩_bilibili

1.串口的DMA转运重要知识点:
 

 (1)USART_APP.C中

#include "USART.H"
#include "USART_APP.H"
#include "LCD_APP.H"

#define BUUFER_SIZE 64

uint8_t usart_read_buffer[BUUFER_SIZE];
//串口中断
//void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
//{
//	if(huart->Instance == USART1)
//	{
//		uart_rx_ticks = uwTick;
//		uart_rx_index++;
//		
//		HAL_UART_Receive_IT(&huart1, &uart_rx_buffer[uart_rx_index], 1);
//		
//	}
//}
//空闲中断
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
    printf("dma data:%s\r\n", uart_rx_dma_buffer);
//	LcdSprintf(Line1, "%s", uart_rx_dma_buffer);
		memset(uart_rx_dma_buffer, 0, sizeof(uart_rx_dma_buffer));
}
void usart_proc(void)
{
//串口中断
//	 if(uart_rx_index == 0) return;

//     // 如果从最后一次接收到数据到现在已经超过100ms
//     if(uwTick - uart_rx_ticks > 100) // 100ms内没有收到新的数据
//     {
//         printf("uart data: %s\n", uart_rx_buffer);

//         // 清空接收缓冲区,将接收索引置零
//         memset(uart_rx_buffer, 0, uart_rx_index);
//         uart_rx_index = 0;
//      
//         // 将UART接收缓冲区指针重置为接收缓冲区的起始位置
//         huart1.pRxBuffPtr = uart_rx_buffer;
//     }
	
//空闲中断
}

我觉得DMA转运应该是比赛中最应该使用的,西风的视频里面讲到串口中断直接进行处理会造成数码管的卡死,使用DMA转运则会减轻串口的使用时间,从而解决 数码管的卡死

 

(2)stm32g4xx_it.c和usart.c中

一定记得加上:
 

HAL_UARTEx_ReceiveToIdle_DMA(&huart1, uart_rx_dma_buffer, sizeof(uart_rx_dma_buffer));
  __HAL_DMA_DISABLE_IT(&hdma_usart1_rx ,DMA_IT_HT);

 

相关文章:

  • 【大模型】Transformer、GPT1、GPT2、GPT3、BERT 的论文解析
  • 机器学习扫盲系列(1) - 序
  • 在 Ubuntu 服务器上使用宝塔面板搭建博客
  • 【AI News | 20250316】每日AI进展
  • [C++面试] 关于deque
  • 【Node.js入门笔记4---fs 目录操作】
  • 点点-一款超级强大AI生活搜索助手
  • 内网环境安装dlv,本地远程调试go
  • 2.12[A]distribute sys
  • 豆包与 Trae 编程 IDE:开启智能编程新时代
  • 8.C语言分支结构详解:掌握if语句与关系操作符
  • 算法专题(五):模拟
  • Maven核心包:maven-resolver-api
  • 海鲜水产行业wordpress外贸主题
  • linux grub文件丢失
  • C语言之共用体
  • 腾讯混元大模型简介
  • LVPECL(Low Voltage Positive Emitter-Coupled Logic)电平详解
  • Wireshark:在 显示过滤器中“加入条件”过滤后,出现其他类型的数据包,为什么?
  • 在Android中,子线程可以更新UI吗
  • b2b网站推广/百度免费发布信息
  • 阿里巴巴是b2b电子商务网站吗/西安网站建设公司十强
  • 国外wordpress主机/seo网络推广公司排名
  • wordpress 自动换行/一键优化软件
  • 新闻今日头条最新消息/深圳网站优化
  • 网站建设的前景/海外网站推广的公司