stm32串口通信HAL

下一步使能串口,在左侧的 Connectivity中选择USART1(如果在这个之前你没有选择串口的GPIO引脚那个系统会自己帮你选择最优的引脚)使能好了引脚会变成绿色,然后再在下面进行配置波特率,就可以生成代码了

在生成代码的时候

1.命名

2.选择编译器Toolchain/IDE:MDK_ARM

3.去 Code Generator:勾选上Generate peripheral initialization as a pair of '.c/.h' files per peripheral

 下面就到了业务代码编写的环节

1.以阻塞的方式进行(成对存在)

2.以中断的方式进行(成对存在)

3.以DMA(直接存储器访问)的方式进行:就是我不需要CPU的处理,我直接进行数据的翻译

 我电脑直接将串口的数据发给单片机通过DMA将数据放在定义的数组里面

 

在主函数的循环中写HAL_UART_Transmit(&huart1,temp,5,50 );

它是用来在STM32 HAL库(Hardware Abstraction Layer,硬件抽象层)中发送UART(通用异步收发器)数据的函数调用。这个函数的各个部分:

1.HAL_UART_Transmit(:这部分表示你正在调用HAL库中的UART传输函数。
2.&huart1:这是一个UART_HandleTypeDef类型的结构体指针,它包含了UART1的配置和状态信息。通过&huart1,函数知道要使用哪个UART端口来进行数据传输。这个参数定义在写在usart.c文件里面
3.temp:这是一个指向要发送数据的缓冲区的指针。在这个函数中,temp 应该是一个uint8_t类型的数组或缓冲区,包含了你想要发送的数据。这个参数需要你自己在函数中定义,并且写出你想要通过串口发出的东西,uint8_t temp[]="kuangyuxin";
4.5:这表示要发送的数据的字节数。在这个例子中,它告诉函数从 temp 缓冲区中发送5个字节的数据。
5.50:这是函数的超时参数,表示在等待UART发送操作完成时的最大等待时间。如果发送操作在50毫秒内没有完成,函数可能会超时并返回一个错误。

这个函数调用的目的是将 temp 缓冲区中的5个字节的数据通过UART1发送出去,并且等待最多50毫秒,以便发送完成。在这个函数被调用后,UART1将会传输 temp 缓冲区中的数据。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值