一、使用USART发送数据
在单片机程序调试过程中,串口打印调试方法是非常重要的手段,在使用串口调试时,我们更多的是使用printf。但是下面我们不介绍printf,介绍一下另外几种我们常用的调试方法。具体方法如下:
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;
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
单片机
+关注
关注
6030文章
44482浏览量
631738 -
调试
+关注
关注
7文章
571浏览量
33857 -
串口
+关注
关注
14文章
1540浏览量
76015 -
程序
+关注
关注
116文章
3754浏览量
80723 -
Printf
+关注
关注
0文章
81浏览量
13600
发布评论请先 登录
相关推荐
单片机串口模块调试方法
笔者在调试某Cortex-M3内核单片机时遇到一个问题,此单片机不具备在线仿真功能,因此调试代码时只能使用UART输出Log的方式调试。
发表于 07-28 15:48
•1452次阅读
单片机系统硬件抗干扰常用方法实践
单片机系统硬件抗干扰常用方法实践 影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并受系统结构
发表于 03-02 01:17
•846次阅读
单片机开发调试应注意的问题
单片机开发调试应注意的问题
1、使用总线不外引的单片机
·是最正统的单片机使用模式
·符合小型、简单、可靠、廉价的单片机设计初衷
发表于 03-26 12:30
•1735次阅读
单片机调试常见问题与解决方法
单片机调试是嵌入式系统开发中的一个重要环节,它涉及到对单片机程序的测试和优化,以确保系统能够正常工作。在调试过程中,开发者可能会遇到各种问题。 1. 程序无法烧录到
评论