当前位置: 首页 > news >正文

串口通信函数汇总-ing

 谢谢各位佬的阅读,本文是我自己的理解,如果您发现错误,麻烦请您指出,谢谢

首先谈谈我自己对于串口的理解,随便拿一个嵌入式的板子,它上面有两个引脚,一个是rx,一个是tx,rx用于接收来自上位机,也就是电脑的数据,就是我们在串口调试助手的对话框输入的东西,我们需要串口接收函数来接收读取的数据,并将这个数据存放到一个数组中供我们的后续使用

这个函数就是串口回调函数void HAL_UART_RxCpltCallBack(UART_HandleTypeDef *huart)

void HAL_UART_RxCpltCallBack(UART_HandleTypeDef *huart)
{
    if(huart->Instance==USART1)
    {
        rxdata[rx_pointer++]=rxdat;//先用后加
        //每次只能接收一位,每进一次中断就会把上一次的存进中断里,然后1位1位拼起来就是完整的字符串了。
        HAL_UART_Receive_IT(&huart1,&rxdat,1);
    }
}

在串口回调函数中,每用一次HAL_UART_Receive_IT(&huart1,&rxdat,1);这个串口接收中断使能函数,我们从对话框输入的一大串字符的一个字符就会赋值给rxdat,例如CNBR:A392:200202120000这一大串字符,就会按顺序将C,N,B,R,:,A,3,9,2,:.........0将字符依次赋值给rxdat,而rxdata这是一个数组,它会按顺序的将rxdat的值存入数组,实现这个功能主要归功于rx_pointer这个变量在程序每进一次串口回调函数就会加1,使rxdat的值依次存入rxdata数组,并且最终在数组里的顺序与我们在对话框中输入的数据完全一致。

也就是rxdata[22]={CNBR:A392:200202120000};

如果我们想要分析这个数组里的数据,这时候就要用到sscanf函数

sscanf(rxdata,"%4s:%4s:%12s",car_type,car_data,car_time);

你能看的懂这个函数的用法吗?是不是很简单,我们先看%4s:%4s:%12s

发现4,4,12分别对应的是CNBR, A392, 200202120000,也就是说我们不需要':',所以将CNBR赋值给car_type,        A392赋值给car_data,   200202120000赋值给car_time

这时候分析起来数据就简单了

我们再来谈谈串口的发送,这个相较于串口的接收简单很多,

        sprintf(text,"please input key:\r\n");
        HAL_UART_Transmit(&huart1,(uint8_t *)text,sizeof(text),50);
        HAL_Delay(1000);

串口调试助手上面显示的数据只能是嵌入式板子发送给它的数据,你自己在对话框中发送的数据是直接传送给板子,不会在显示界面显示

相关文章:

  • SpringMVC执行的流程
  • 子网掩码介绍
  • 批量ip反查域名工具
  • 第十八:go 并发 goroutine
  • VScode 运行LVGL
  • 前端监测窗口尺寸和元素尺寸变化的方法
  • 【git】【网络】【项目配置运行】HTTP 协议的微型简易 Web 服务器---tinyEasyMuduoWebServer
  • 机器人运动学与动力学
  • 自动驾驶与车路协同
  • 力扣:3305.元音辅音字符串计数
  • Guangzhaotest
  • 动态规划中的自底向上与自顶向下
  • 【A2DP】深入解析A2DP协议中的音频流处理
  • 数字孪生技术在工业制造中的应用探索
  • MongoDB副本集部署完整教程
  • 逐梦DBA:Linux环境下 MySQL 的卸载
  • 嵌入式八股C语言---文件,可执行文件的加载与运行篇
  • MySQL——基础知识
  • 【机器学习-基础知识】统计和贝叶斯推断
  • Flutter_学习记录_device_info_plus 插件获取设备信息
  • 马上评丨全民定制公交,打开城市出行想象空间
  • 越怕出错越会出错,“墨菲定律”的魔咒该怎么破?
  • 金融监管局:已设立74支私募股权投资基金,支持投资科技创新企业
  • 菲护卫艇企图侵闯中国黄岩岛领海,南部战区:依法依规跟踪监视、警告驱离
  • 国务院安委会办公室印发通知:坚决防范遏制重特大事故发生
  • 中国证监会印发《推动公募基金高质量发展行动方案》