首页 > 其他分享 >串口基础 (HAL)

串口基础 (HAL)

时间:2022-12-06 11:11:52浏览次数:43  
标签:HAL UART 基础 发送 HandleTypeDef 串口 RxBuffer

一、扫描模式

CubMAX配置介绍:

模式选择:

Asynchronous  异步通信

Synchronous  同步通信

Single Wire (Half-Duplex) 单线/半双工

Multiprocessor Communication 多处理器

支持局域互连网络LIN、智能卡(SmartCard)协议与lrDA(红外线数据协会) SIR ENDEC规范。

 基础参数:波特率为9600Bits/s,传输数据长度为8 Bit,奇偶检验无,停止位1 

 

HAL库函数

串口发送函数:

HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);

功能:串口发送指定长度的数据。如果超时没发送完成,则不再发送,返回超时标志(HAL_TIMEOUT)。

参数

  • UART_HandleTypeDef *huart UATR的别名 如 : UART_HandleTypeDef huart1; 别名就是huart1
  • *pData 需要发送的数据
  • Size 发送的字节数
  • Timeout 最大发送时间,发送数据超过该时间退出发送

串口接收函数:

 HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);

功能:串口接受指定长度的数据。如果超时没接受完成,则不再接受,返回超时标志(HAL_TIMEOUT)。

参数

  • UART_HandleTypeDef *huart UATR的别名 如 : UART_HandleTypeDef huart1; 别名就是huart1
  • *pData 需要接受的数据
  • Size 发送的字节数
  • Timeout 最大接受时间,接受数据超过该时间退出接受

代码

全局:

char RxBuffer[100];   //接收数据
char TxBuffer[100] = {0x50}; //发送数据

 

main:

 HAL_UART_Transmit(&huart3,(uint8_t *)TxBuffer,1,0xffff);

 

while:

      HAL_UART_Receive(&huart3,(uint8_t *)RxBuffer,3,0xffff);// 接收3个字符
      if(RxBuffer[0] != 0)
      {
          HAL_UART_Transmit(&huart3,(uint8_t *)RxBuffer,3,0xffff);// 发送3个字符
          memset(RxBuffer,0,sizeof(RxBuffer));                
      }
memset函数需要在添加#include "string.h"

串口助手演示效果:

 符合预计效果

 

标签:HAL,UART,基础,发送,HandleTypeDef,串口,RxBuffer
From: https://www.cnblogs.com/CC-C/p/16954638.html

相关文章

  • cv2.resize函数报错:error: (-215:Assertion failed) func != 0 in function ‘cv::hal
    文章目录​​报错​​​​错误代码​​​​解决​​报错在使用cv2.resize()对图片调整大小时遇到了以下错误。img_array=cv2.resize(img_array,(1024,1024))cv2.error:......
  • idea中你必须学会的一些基础操作
    文章目录​​1.设置​​​​2.善用Alt+Enter(简称为AE)​​​​3.创建文件时自动生成文件头部注释​​​​4.查看类的继承实现关系图​​​​5.idea中使用git管理你的代......
  • React Native基础与入门(一)--搭建开发环境
    什么是ReactNative?ReactNative是Facebook开源的一套用于开发移动端跨平台App的技术框架,其代码托管在GitHub上,目前已有一千多名参与者向它贡献代码。有兴趣的可以去查看源......
  • mysql基础问题三问(底层逻辑;正在执行;日志观察)
    背景:经常面试会遇到且实际工作中也会应用到的三个场景:目录:一.mysql查询时的底层原理是什么?二.如何查看正在执行的mysql语句?三.如何观察mysql运行过程中的日志信息?--......
  • SwiftUI 基础 —— 状态管理机制
    @State被@State包装的值发生改变时,UI将被同时改变structContentView:View{@Statevartitle="HelloWorld"varbody:someView{VStack{......
  • C语言从入门到实战(基础学习篇)
    1.基本数据类型原码反码和补码正数的反码是其本身负数的反码是在其源码的基础上,符号位不变,其余各个位取反负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+11.......
  • Java基础-6(方法)
    Java基础-6(方法)方法概述方法的格式带参数方法形成和实参带返回值的方法方法的注意事项方法的通用格式方法的重载方法的值传递机制习题带参......
  • Java基础-4(循环结构)
    Java基础-3(循环结构)for循环while循环do-while循环习题1~5,5~1:输出1到5,和5到1的整数,(for循环)求和:1~5的整数之和。(for循环)求偶数和:求1~100之间的偶......
  • JS基础简介
    JS基础简介一、JS简介JavaScript(简称'js')是一种具有函数优先的轻量级、解释型或及时编译型的编程语言。虽然它是作为开发web页面的脚本语言而出名,但是它也被用到了......
  • Java基础-2(分支结构)
    Java基础-2(分支机构)习题奇数偶数:输入一个整数,判断奇数偶数。(ifelse,二选一)考试奖励:设置奖励条件,和奖励。(if,elseif,多选一)星期几:输入一个1-7的整数,判断是“......