【STM32】HAL库 串口中断发送与接收

这篇具有很好参考价值的文章主要介绍了【STM32】HAL库 串口中断发送与接收。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

【STM32】HAL库 新建MDK工程
【STM32】HAL库 串口轮询发送


前言

使用stm32串口中断发送和中断接收

一、STM32CubeMX设置

hal库串口接收字符串,STM32,stm32,单片机,嵌入式硬件

二、代码

中断发送字符串

void Serial_SendString(char *String)
{
		HAL_UART_Transmit_IT(&huart1,(uint8_t *)String,strlen(String));
}

中断发送数组

void Serial_SendArray(uint8_t *Array, uint16_t Length)
{
		HAL_UART_Transmit_IT(&huart1,Array,Length);
}

主函数

/* USER CODE BEGIN PV */
char String[] = {"hello world\r\n"};
uint8_t Tarr[7] = {0x77,0x6F,0x72,0x6C,0x64,0x0D,0x0A};
/* USER CODE END PV */

  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		 Serial_SendString(String);
		 HAL_Delay(1000);
		
		 Serial_SendArray(Tarr, sizeof(Tarr)/sizeof(Tarr[0]));
     	 HAL_Delay(1000);
  }
    /* USER CODE END 3 */

hal库串口接收字符串,STM32,stm32,单片机,嵌入式硬件

中断接收

在主函数前开启中断,接受字节数为5

uint8_t Rarr[5] = {0};

HAL_UART_Receive_IT(&huart1,Rarr,5);

接受5个字节后,进入中断接收完成回调函数,重新再开启中断,并把接收到的数据返回

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	HAL_UART_Receive_IT(&huart1,Rarr,5);
  Serial_SendArray(Rarr,sizeof(Rarr)/sizeof(Rarr[0]));
}

hal库串口接收字符串,STM32,stm32,单片机,嵌入式硬件

不定长字符串接收

修改接收数组长度,改为开启串口空闲中断

uint8_t Rarr[50] = {0};

HAL_UARTEx_ReceiveToIdle_IT(&huart1,Rarr,50);

接收事件回调函数

 void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
 {
	   Serial_SendArray(Rarr,Size);
	   HAL_UARTEx_ReceiveToIdle_IT(&huart1,Rarr,50);
 }

hal库串口接收字符串,STM32,stm32,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-720122.html

到了这里,关于【STM32】HAL库 串口中断发送与接收的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32--HAl库串口接收与发送

            在此之前,我们已经学习了单片机串口通信的原理(江科协),再写一遍我个人认知:世界上任何两个事物如果要进行交流的话,那必然需要两个东西进行通信的,就像两个人之间,两个国人之间用普通话就能够清楚的交流,但是让我们中国人和外国人去交流可能会

    2024年04月10日
    浏览(52)
  • 【STM32 HAL库实战】串口DMA + 空闲中断 实现不定长数据接收

    STM32CubeMX最新版: 打开STM32CubeMX软件,点击ACCESS TO MCU SELECTOR,在Commercial Part Number 中输入MCU型号,例如我在这里输入了STM32L431RCT6。选中正确型号然后双击进入下一步的配置界面。 1.1 SYS配置如图 1.2 RCC配置如图 开启了外部晶振,若无则都选择Disable 1.3 USART1配置 NVIC Settings 注意

    2024年02月03日
    浏览(79)
  • 【STM32】HAL库 STM32CubeMX——DMA (串口DMA发送接收)

    软件: STM32CubeMX KEIL5 mcuisp 串口通信助手 硬件: STM32F103C8Tx 杜邦线,面包板,USB转TTL DMA,全称Direct Memory Access,即直接存储器访问。 DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。 我们知道系统的运

    2024年02月12日
    浏览(66)
  • STM32CubeMX-HAL库-UART串口接收中断回调函数代码分析

            CubeMx中HAL库函数的调用不同于库函数调用,在学习CubeMx串口通信时,不理解HAL库中的回调函数是怎么被调用的,于是查看每个的定义,参考其他人写的博客,总算弄明白了HAL库中断调用与库函数不同之处。写下这篇博客一是加深自己的理解,二是希望对不理解HA

    2024年02月02日
    浏览(56)
  • STM32F4_HAL库_串口阻塞/中断/DMA三种方式发送数据的配置

    串口阻塞发送的意思就是,发送一段数据,在没有发送完所有数据之前,一直停留在此发送函数(可设定阻塞时间),这个过程中会阻塞别的程序运行; HAL库的配置分为两个层次,一个是HAL库内部调用的、与MCU硬件相关的初始化xxx_MspInit,一个是我们外部调用的初始化xxx_In

    2023年04月25日
    浏览(53)
  • 【STM32】CUBEMX之串口:串口三种模式(轮询模式、中断模式、DMA模式)的配置与使用示例 + 串口重定向 + 使用HAL扩展函数实现不定长数据接收

    目录   总览 使用CUBEMX创建工程的基本配置 CUBEMX中的配置 Keil中的配置 实物连接 串口轮询模式 轮询模式HAL库函数 特点 实验一:发送数据给单片机并让其返回相同值 串口重定向 串口中断模式 在CUBEMX中打开串口中断 中断模式HAL库函数 特点 实验二:使用中断回调完成实验一

    2024年04月10日
    浏览(74)
  • 【STM32笔记】HAL库UART串口配置及重定向(解决接收中断与scanf不能同时工作、重定向卡死、低功耗一直唤醒的问题)

    【STM32】HAL库UART串口配置及重定向(解决接收中断与scanf不能同时工作、重定向卡死、低功耗一直唤醒的问题) 注意:这里用的编译器版本为ARMCC(也就是第5代编译器 而不是AC6) 首先 要使用printf和scanf 必不可少的就是 这里需要做的就是配置单片机的UART 并且使其能够被pri

    2023年04月08日
    浏览(48)
  • STM32基于HAL库的串口接受中断和空闲中断

    在通信方面。UART由于全双工通信,可以同时接受数据和发送数据而被广泛使用。 而接受数据则又有很多种方法 比如: 1根据结束符判断,数据是字符串形式,所以一般串口接受的接受符就是 \\\"rn\\\"  换成16进制ascil码显示就是 0X0D   0X0A (对应rn)  2定时器中断,设计\\\"喂狗信号量

    2023年04月08日
    浏览(49)
  • STM32 HAL库的串口中断服务函数详解

    最近在实现利用上位机通过串口发送指令给下位机执行操作的实验,在之前学习串口的过程中我就一直有一个疑惑,那就是为什么在串口中断回调函数内除了要加上自己的操作以外还要在末尾再执行一次 接收中断 ,在查阅了一些资料后我才发现原来和 中断服务函数 有关 我

    2024年02月10日
    浏览(43)
  • STM32_HAL库串口接收相关函数分析

    串口接收的程序整体分为三个部分:初始化部分,开启中断部分,中断函数部分: 初始化部分: 该部分主要完成相关引脚的初始化,串口的初始化(设置波特率,校验位,字长等),为了逻辑清晰,把初始化相关代码放在本文的最后。 开启中断部分: 调用HAL_UART_Receive_IT函数

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包