单片机常用的调试方法

描述

一、使用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;
}
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分