首页 > 其他分享 >STM32系统开发--基于LL库的多串口Printf使用

STM32系统开发--基于LL库的多串口Printf使用

时间:2024-02-12 21:13:10浏览次数:16  
标签:sendbuff USART usart -- LL 串口 Printf

MDK:Keil v5.38/STM32CubeMX

MCU:STM32G431CBUx

外设:串口USART1、2

使用多串口Printf,基于C语言中的函数可变参数,首先要包含头文件"stdarg.h"。

基于LL库,编写多串口打印函数:

/************************************************
函数名称 :USART_Printf
功    能 :多串口Printf函数
参    数 :
返 回 值 :
*************************************************/
void USART_Printf(USART_TypeDef *USARTx,char* fmt, ...)
{
    uint16_t i=0;
    char usart_sendbuff[256];
    memset(usart_sendbuff,0,256);
    
    va_list ap;
    va_start(ap,fmt);
    vsprintf(usart_sendbuff,fmt,ap);
    va_end(ap);
    
    while(usart_sendbuff[i])
    {
        LL_USART_TransmitData8(USARTx,usart_sendbuff[i++]);
    while(!LL_USART_IsActiveFlag_TXE(USARTx));//需要等待发送完成
    }

}    

编写测试函数:

USART_Printf(USART1,"Temperature:%6.4f\r\n",imu_measurements.Temperature);
USART_Printf(USART2,"Acc_X:%6.4f \r\n",imu_measurements.Uncomp_Acc_X);
        

实测现象

 

标签:sendbuff,USART,usart,--,LL,串口,Printf
From: https://www.cnblogs.com/xujingxing/p/18014115

相关文章

  • Codeforces Round 924 (Div. 2)B. Equalize(思维+双指针)
    目录题面链接题意题解代码题面链接B.Equalize题意给一个数组\(a\),然后让你给这个数组加上一个排列,求出现最多的次数题解赛时没过不应该。最开始很容易想到要去重,因为重复的元素对于答案是没有贡献的。去重后排序。,然后维护一个极差小于n-1的区间,,区间长度就是可能的答案......
  • boruvka 算法学习笔记
    boruvka算法就是最小生成树B算法。B算法的思路是每次对每个连通块,求出它能连出去的权值最小的边,然后再按边权从小到大合并。由于每次操作连通块数至少减半,所以复杂度是\(O(m\logn)\)。1.CF1305GKuroniandAntihype题意:长为\(n\)的数列\(a\),现在要选择全部数,每一次你......
  • [WUSTCTF2020]朴实无华
    [WUSTCTF2020]朴实无华robots.txt里发现提示打开这个页面,虽然页面里没有有用的信息,但是在响应头里发现了另一个页面提示打开发现代码<?phpheader('Content-type:text/html;charset=utf-8');error_reporting(0);highlight_file(__file__);//level1if(isset($_GET......
  • 爬虫_058_urllib get请求的urlencode方法
    目录urllib.parse.urlencode()quote方法使用的不是很经常的。因为quote的作用是将汉字转为百分号编码后的ASCII字符串。如果你的路径当中只有一个参数,你这样使用quote拼接一下url,这是没有问题的。如果你的路径当中有多个参数,并且参数都是中文的,你还使用quote,就TMD懵逼了。......
  • 微分积分及其运算法则成对列举
         ......
  • C++——异常处理模块笔记
    异常处理是C++中的重要概念之一,用于处理在程序执行过程中可能发生的错误或异常情况。异常是指在程序执行过程中发生的一些不寻常的事件,例如除零错误、访问无效内存等。C++提供了一套异常处理机制,使得程序可以优雅地处理这些异常,提高程序的可靠性和健壮性。异常是一种程序......
  • CF1927G Paint Charges
    题意简述你有\(n\)个道具,对于第\(i\)个道具,你可以选择覆盖\([i-a_i+1,i]\)或\([i,i+a_i-1]\),或者什么都不做。求覆盖所有\(1\simn\)所需要的道具的最小数目。\(n\le100\)。\(O(n^3)\)解法首先明确一个事实:被一个或多个区间包含的区间,使用该区间对应的道具是没有......
  • 1对贝叶斯公式的思考
    1:P(A)可以看成先验概率,不考虑B的影响,前面圈中的看成B事件对A的影响,A发生时B发生的概率与B的先验概率的比值,相同时比值为1,说明不影响2:图书馆员和农民的例子,B是特征,A是农民,虽然特征符合较少,但总体基数大,即P(A)大3:P(B)是分母,可以理解所有符合特质的样本,可能图书管理员只占一小部分......
  • 心得
    可以被修饰的对象有哪些类名属性名(全局变量)方法体内的变量(局部变量)方法名构造体名修饰符有哪些范围修饰符(publicprotected默认private):类名、属性名、方法名、构造体名finnal(最终的,不可更改的,不可继承的):类名、属性名、方法名、局部变量名static(静态的,类属性,类方法):属性......
  • 爬虫_057_urllib get请求的quote方法
    目录引子编码集的演变需求知识点重新测试get请求方式的quote方法引子将百度搜索周杰伦的地址栏地址,复制到pycharm当中变成下面的样子:https://www.baidu.com/s?wd=%E5%91%A8%E6%9D%B0%E4%BC%A6编码集的演变ASCII编码:一个字符一个字节中国:GB2312日本:Shift_JIS韩国:Euc-k......