STM32Cube配置串口
配置串口
配置中断
时钟简单配置,生成代码即可
编写代码
使用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配置串口相关推荐
- STM32Cube配置等精度测频和测相位差
标题STM32Cube配置等精度测频和测相位差 一.测量精度: 1.频率精度 频率测量.周期测量的信号频率范围扩展为1Hz-20MHz(这里由于信号发生器最高产生20MHz频率,所以更高频率未尝试,预 ...
- STM32Cube的串口实战(一)GPS+BD模块
串口系列 STM32Cube的串口设置(一)即学即用 STM32Cube的串口设置(二)一个串口接收另一个串口发送 通过串口设置之前的部分大家应该基本会使用多个串口配合了,今天就来找个东西练练手,第一 ...
- CubeMX配置串口的程序烧入板子不跑的解决方法
对于cubeMX配置串口,keil5编译通过的,自己确定无问题的程序,以ISP烧入,烧入板子后无法运行的情况,我暂时的解决策略是按住reset键点击"开始编程",点击后松开rese ...
- vmware虚拟机配置串口
Vmware提供了4种串行端口类型我们可以通过串口来进行一些研发和Vmware自动化的部署工作. VMware串行端口类型 1.使用主机上的物理串行端口 2.输出到文件 3.连接到命名管道 4.通过网 ...
- 二、读取编码器数值实现电机测速—1 、配置串口通信;
读取编码器数值实现电机测速 电机系列 二.读取编码器数值实现电机测速 1 .配置串口通信: usart.h usart.c main.c 2 .配置编码器: 电机系列 二.读取编码器数值实现电机测速 ...
- stm32之配置串口中断服务函数
在学习51单片机的时候,配置串口中断服务函数,只需要查看串口中断的中断号,然后在编写中断服务函数的时候,在函数名后面加上中断号.而在stm32中,中断的数量较多,对于中断的管理也会稍微复杂一点,而且中 ...
- 服务器虚拟机配置串口连接到网络,vmware虚拟机配置串口
Vmware提供了4种串行端口类型我们可以通过串口来进行一些研发和Vmware自动化的部署工作.VMware串行端口类型 1.使用主机上的物理串行端口 2.输出到文件 3.连接到命名管道 4.通过网络 ...
- STM32CubeMX配置串口
配置串口 1.在Piont&Configuration中的A->Z找到USART1: 2.第一个选项Mode是用来设置串口模式或关闭串口,第二个选项Hardware Flow Contr ...
- 【linux】串口编程(一)——配置串口
目前遇到的串口编程都是用于通信,很少作为终端显示.以前没有对串口编程做深入研究,本次以libmodbus源码中对串口的设置为例,详解总结串口编程时配置的属性(struct termios) 以libm ...
最新文章
- jenkins android sdk,Jenkins为什么找不到Android SDK?
- 【leetcode 简单】 第八十九题 赎金信
- 为什么博士要挤破头进高校?同一个实验室,硕士们进了大厂拿高薪
- Firefox Quantum支持跨浏览器插件架构
- 200多位阿里工程师齐聚“光明顶”,双11模拟演习怎么搞?
- linux学习笔记 (fork FILE PC)
- [JS-BOM]BOM_Window窗口对象
- 中标麒麟安装rpm包命令_在 Fedora 中安装替代版本的 RPM 包
- 二级c语言统计小于n素数的个数,关于求N以内素数的一点小问题(N小于一亿)...
- C语言无符号整数和有符号整数的比较
- AOP处理事务静、动态代理(jdk方法)
- Kettle JAVA代码表达式
- 9,求整数的二进制中1的个数《剑指offer》
- access 更新整列数据_Access如何用sql更新表格数据
- IDEA切换主题(换背景颜色)
- .NET in China - What's New in .NET
- Python自动化办公小程序:实现报表自动化和自动发送到目的邮箱
- 使用 PHP-FFMpeg 操作视频/音频文件(转)
- Docker之Docker概述
- 主打个性化推荐阅读的摘客,玩的是什么?