历史上的今天

今天是:2024年10月12日(星期六)

正在发生

2020年10月12日 | 直接使用单片机的USART发送数据

发布者:清晨微风 来源: eefocus关键字:单片机  USART  发送数据 手机看文章 扫描二维码
随时随地手机看文章

一、使用USART发送数据

  我们在写单片机程序的时候,在Debug时,往往要用到串口输出信息,这是会使用printf打印出我们想要的信息来,但是printf有一个弊端,就是输出打印时间较长。这样在一些对时间精度要求非常高的场合,使用printf将会带来一系列问题,这时,如果使用单片机的USART自定义一个协议,直接发送数据到上位机,将会得到我们想要的效果。下面对怎样使用USART发送数据做一个整理。


1、发送单个字符


void USART1_PutChar(u8 ch)

{

USART_SendData8(USART1,(u8)ch);


while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);


while(USART_GetFlagStatus(USART1,USART_FLAG_TC) == RESET);

}


2、发送固定长度的字符串


void USART1_PutStrLen(u8 *buf,u16 len)

{

for(;len > 0 ; len--)

{

    USART_SendData8(USART1,*buf++);


    while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET);

}


while(USART_GetFlagStatus(USART1,USART_FLAG_TC) == RESET);

}


3、发送任意长度的字符串


void USART1_PutStr(u8 *buf)

{

while(*buf)

{

    USART_SendData8(USART1,*buf++);


    while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET);

}

while(USART_GetFlagStatus(USART1,USART_FLAG_TC) == RESET);

}


二、如何发送16bit的数据

  单片机(STM8)的USART发送的是8bit的数据,所以如果要发送16bit的数据,则需要将16bit的数据转换为8bit的高低两个字节进行发送,需做如下处理。


u16 data;

u8 high_byte,low_byte;

high_byte=data>>8;

low_byte=data;

则经过这样的转换之后,就可以直接使用USART进行发送了。


三、使用翻转电平的方式测量程序执行时间

  我们想要知道某一段代码的执行时间,可以通过示波器来测量,在需要测量的代码处做一个翻转电平的程序,就可以通过示波器来查看程序的执行时间了。代码如下:



 u8 toggle_flag=1;


if(toggle_flag)

{

    GPIO_SetBits(GPIOC,GPIO_Pin_0); 

    toggle_flag=0;

}

else

{

    GPIO_ResetBits(GPIOC,GPIO_Pin_0);

    toggle_flag=1;

}


关键字:单片机  USART  发送数据 引用地址:直接使用单片机的USART发送数据

上一篇:STM8L052 温度控制器
下一篇:初识STM8S105K心得

推荐阅读

ramblock.c驱动源码:#include "linux/module.h"#include "linux/errno.h"#include "linux/interrupt.h"#include "linux/mm.h"#include "linux/fs.h"#include "linux/kernel.h"#include "linux/timer.h"#include "linux/genhd.h"#include "linux/hdreg.h"#include "linux/ioport.h"#include "linux/init.h"#include "linux/wait.h"#include "...
单片机源程序如下://**********************************************************************////************************* 头文件定义 **********************////**********************************************************************//#include<iom16v.h>#include <macros.h>//宏定义#define uchar unsigned char#define u...
在过去的一个世纪中,电动工具有了长足进步。今天,它们更具备了无绳、轻巧的特性,由电池驱动且功能强大,分担了我们的大量工作。那么,是什么推动着电动工具的发展?除了电动工具爱好者外,很大程度上要归功于半导体技术的诸多进步——尤其对于无绳电动工具。 本篇博客涵盖了无绳、电池供电型产品的关键特性,包括促进其不断演进的因素及发展路途中的众...
  10月11日,由全国工商联、广东省人民政府联合主办的2021粤港澳大湾区民营企业科技创新峰会暨民营企业科技成果对接会在广州重磅举行。全国工商联、省委省政府、广州市、白云区相关领导,以及来自粤港澳大湾区众多优秀工商界领袖和代表出席了本次活动。昇辉控股财务总监文真先生代表公司参会。   会议还举行了广州民营科技园“全国工商联民营企业科...

史海拾趣

问答坊 | AI 解惑

ti的dsp中c语言开发的数学问题,请帮忙!

我用的是f2812,所以运行库是rts2800(是在ram仿真中运行的库),头文件包含了math.h 想试一下它的数学库的能力, float z; z=cos(90); z=cos(135); z=sin(90); z=sin(45); 单步运行看结果,发现算出的结果差强人意: cos(90) = -0.448073 ...…

查看全部问答∨

求助!!那位高手大哥!

求助!!那位高手大哥!能帮忙我写个连发心片(支持十个按键),我想给XBOX360无线手柄加上连发功能!按TURBO二下(一下是半自动)+你所要想要连发的键,取消的话按连发的键+手柄后的Clean键就取消了! 市场只有卖HORI牌支持4个按键有线的(不好用)! ...…

查看全部问答∨

苦恼的问题!

最近编一个串口通信的程序,运行程序后在minicom中没有显示任何的传输数据迹象。程序的功能是当向下位机发送一个字符“0x0d”后,下位机自动回复,当缓存区再次接收到“0x0d”后在终端显示,哪位师兄师姐能指点我这个小师弟一下。串口参数是:比特 ...…

查看全部问答∨

ADS的EQN功能怎么用,等噪声圆、增益圆

在仿真LNA时,遇到这样的一个问题,要看噪声系数圆,要输入这样公式:circleData=ns_circle(NFmin[indx]+{0,0.1,0.2},NFmin[indx],Spot[indx],Rn[indx]/50,51)…

查看全部问答∨

关于与电源并联的滤波电容的问题

通常需要在芯片的VCC端与电源进行连接时,需要并接一个电容并将该电容的另一端接地,说是用来滤除电源的交流成分! 我的问题是,为芯片提供电源的是一个5v的支流电源啊?何来的交流成分啊???   5v   ---   | ...…

查看全部问答∨

WINCE 设备调试过程中,MFC视图的OnDraw函数中 一段代码总是过不去

WINCE 设备调试过程中,MFC视图的OnDraw函数中 一段代码总是过不去 仔细检查发现 并无问题  但就是过不去 当我 用 Messagebox一步步调试一 遍就可以进去了 然后去掉MESSAGEBOX程序可以顺利通过了 这样的问题已经碰到几次了 &n ...…

查看全部问答∨

51串口的奇怪问题

计算机串口接收到的51发送的数据,很奇怪! 高4字节都比在51 ROM中的数据大4, 每次PC读进数据都要减4才能与51中的一样,真是莫名奇妙!…

查看全部问答∨

开关电源测试方案

 开关电源因其效率高,体积小而被电子企业广泛应用,以下是自己在工作中总结出来的测试方法和测试项目,在电源设计时若能充分考虑到这些方面,那么其产品将会被越来越多的客户所使用。现在的电子产品对电源的要求有所提高,大部分是关心其稳定 ...…

查看全部问答∨

MX53 Industrial Embedded WinCE7 System, Yuanying

To be one of technical leader company, in past few year Yuanying Tech always focus on embedded system solution offering, from low end to high end. Our platform including MX25, MX28, MX35 and MX51. From Nov of last year, Yuanying ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved