配置串口


配置中断

时钟简单配置,生成代码即可

编写代码

使用STM32cube生成的代码,基本的串口初始化以及完成,首先在主函数中,while(1)前添加

HAL_UART_Receive_IT(&huart1, (uint8_t *)RxBuffer,LENGTH); //打开串口接收中断

这是为了打开串口接收中断,这是因为该函数中有使能中断的代码,具体为

  /* Enable the UART Parity Error Interrupt */__HAL_UART_ENABLE_IT(huart, UART_IT_PE);/* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */__HAL_UART_ENABLE_IT(huart, UART_IT_ERR);/* Enable the UART Data Register not empty Interrupt */__HAL_UART_ENABLE_IT(huart, UART_IT_RXNE);

只做回显主函数while(1)中可以为空
在主函数外设置回调函数,代码如下

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)  //串口接收中断回调函数
{if(huart->Instance == USART1)   //判断发生接收中断的串口{//  RxFlag=1;   //置为接收完成标志HAL_UART_Receive_IT(&huart1, (uint8_t *)RxBuffer,LENGTH); HAL_UART_Transmit(&huart1, (uint8_t *)RxBuffer, LENGTH ,1000);//   HAL_UART_Receive_IT(&huart1, (uint8_t *)RxBuffer,LENGTH); }//__HAL_UART_ENABLE(&huart1);
}

这就是HAL库和标准库的区别,在标准库中,串口中断接收数据是在中断处理函数中完成,而HAL库对此进行了优化,提供了相应的回调函数,在回调函数中完成数据的读取,注意,在回调函数中读取函数必须为HAL_UART_Receive_IT,该函数可以再次打开串口中断,若不为他则会出错
HAL库针对不同的情况设置了不同的回调函数

void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart);//发送回调
void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart);//发送一半的回调,一般不用
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);//接收回调
void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart);//接收一般回调,一般不用

STM32Cube配置串口相关推荐

  1. STM32Cube配置等精度测频和测相位差

    标题STM32Cube配置等精度测频和测相位差 一.测量精度: 1.频率精度 频率测量.周期测量的信号频率范围扩展为1Hz-20MHz(这里由于信号发生器最高产生20MHz频率,所以更高频率未尝试,预 ...

  2. STM32Cube的串口实战(一)GPS+BD模块

    串口系列 STM32Cube的串口设置(一)即学即用 STM32Cube的串口设置(二)一个串口接收另一个串口发送 通过串口设置之前的部分大家应该基本会使用多个串口配合了,今天就来找个东西练练手,第一 ...

  3. CubeMX配置串口的程序烧入板子不跑的解决方法

    对于cubeMX配置串口,keil5编译通过的,自己确定无问题的程序,以ISP烧入,烧入板子后无法运行的情况,我暂时的解决策略是按住reset键点击"开始编程",点击后松开rese ...

  4. vmware虚拟机配置串口

    Vmware提供了4种串行端口类型我们可以通过串口来进行一些研发和Vmware自动化的部署工作. VMware串行端口类型 1.使用主机上的物理串行端口 2.输出到文件 3.连接到命名管道 4.通过网 ...

  5. 二、读取编码器数值实现电机测速—1 、配置串口通信;

    读取编码器数值实现电机测速 电机系列 二.读取编码器数值实现电机测速 1 .配置串口通信: usart.h usart.c main.c 2 .配置编码器: 电机系列 二.读取编码器数值实现电机测速 ...

  6. stm32之配置串口中断服务函数

    在学习51单片机的时候,配置串口中断服务函数,只需要查看串口中断的中断号,然后在编写中断服务函数的时候,在函数名后面加上中断号.而在stm32中,中断的数量较多,对于中断的管理也会稍微复杂一点,而且中 ...

  7. 服务器虚拟机配置串口连接到网络,vmware虚拟机配置串口

    Vmware提供了4种串行端口类型我们可以通过串口来进行一些研发和Vmware自动化的部署工作.VMware串行端口类型 1.使用主机上的物理串行端口 2.输出到文件 3.连接到命名管道 4.通过网络 ...

  8. STM32CubeMX配置串口

    配置串口 1.在Piont&Configuration中的A->Z找到USART1: 2.第一个选项Mode是用来设置串口模式或关闭串口,第二个选项Hardware Flow Contr ...

  9. 【linux】串口编程(一)——配置串口

    目前遇到的串口编程都是用于通信,很少作为终端显示.以前没有对串口编程做深入研究,本次以libmodbus源码中对串口的设置为例,详解总结串口编程时配置的属性(struct termios) 以libm ...

最新文章

  1. jenkins android sdk,Jenkins为什么找不到Android SDK?
  2. 【leetcode 简单】 第八十九题 赎金信
  3. 为什么博士要挤破头进高校?同一个实验室,硕士们进了大厂拿高薪
  4. Firefox Quantum支持跨浏览器插件架构
  5. 200多位阿里工程师齐聚“光明顶”,双11模拟演习怎么搞?
  6. linux学习笔记 (fork FILE PC)
  7. [JS-BOM]BOM_Window窗口对象
  8. 中标麒麟安装rpm包命令_在 Fedora 中安装替代版本的 RPM 包
  9. 二级c语言统计小于n素数的个数,关于求N以内素数的一点小问题(N小于一亿)...
  10. C语言无符号整数和有符号整数的比较
  11. AOP处理事务静、动态代理(jdk方法)
  12. Kettle JAVA代码表达式
  13. 9,求整数的二进制中1的个数《剑指offer》
  14. access 更新整列数据_Access如何用sql更新表格数据
  15. IDEA切换主题(换背景颜色)
  16. .NET in China - What's New in .NET
  17. Python自动化办公小程序:实现报表自动化和自动发送到目的邮箱
  18. 使用 PHP-FFMpeg 操作视频/音频文件(转)
  19. Docker之Docker概述
  20. 主打个性化推荐阅读的摘客,玩的是什么?

热门文章

  1. 【原创】《华杉讲透《孙子兵法》》阅读有感(四)
  2. Allegro学习笔记:“如何建自己的Subclass”
  3. Windows查看Java内存使用情况
  4. 「游戏引擎 浅入浅出」项目介绍
  5. python矩阵和向量乘法总结
  6. 获取Jenkins项目名称
  7. Nuendo学习之旅——音程和和弦
  8. 小米路由器http文件服务器,小米路由器远程任意文件读取漏洞(CVE-2019-18371)
  9. 大学课设之Mysql图书管理设计
  10. 四川大学计算机系统 赵树龙,王俊峰