STM32 HAL库UASRT 不确定字符个数接收与发送

实验目的:串口USART1的中断发送和中断接收数据

实验准备:MDK开发环境

                 STM32 CubeMX软件

        用CubeMX生成工程文件就省略去了,因为此类设置资料很多,而且也都很全面,所以我也偷懒为了节省一些时间,这里就不在赘述了。我们直接从打开工程开始讲。

        在做实验之前我也在网上阅读了一些资料,可是大部分的就是匆匆讲怎么串口中断接收一组固定的数据,然后直接又通过串口直接发送出去,有的在main.c文件中用了回调函数。接收数据然后把数据又发送出去,有的直接就在中断里直接把数据回传。本此讲解怎么通过比较实际实用中的一种方式,就是在中断接收中尽量不占用时间,只是单纯的接收数据,并且判断本次接收数据所占的字节长度,给主函数让出更多的时间来做其他的事情,然后主函数通过判断接收完成一组完整的数据,把通过TXD把数据也通过中断的方式转发出去。

在main.c中添加一些必要变量定义

uint8_t re_date = 0;   //从串口接收数据变量
uint8_t re_buffer[30]; //设置数据储存区
uint16_t len_re_buffer = 0;   //接收数据长度
char receive_flag = RESET;   //接收数据结束标志

在main(void)初始化中添加HAL_UART_Receive_IT(&huart1,&re_date,1);    目的是打开中断并且设置为接收一个数据进入一次串口接收中断,把接收到的数据保存在re_date变量中。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值