一、使用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;
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
單片機
+關注
關注
6040文章
44594瀏覽量
636924 -
調試
+關注
關注
7文章
585瀏覽量
33999 -
串口
+關注
關注
14文章
1557瀏覽量
76737 -
程序
+關注
關注
117文章
3793瀏覽量
81223 -
Printf
+關注
關注
0文章
83瀏覽量
13683
發布評論請先 登錄
相關推薦
單片機串口模塊調試方法
筆者在調試某Cortex-M3內核單片機時遇到一個問題,此單片機不具備在線仿真功能,因此調試代碼時只能使用UART輸出Log的方式調試。
發表于 07-28 15:48
?1598次閱讀
單片機系統硬件抗干擾常用方法實踐
單片機系統硬件抗干擾常用方法實踐 影響單片機系統可靠安全運行的主要因素主要來自系統內部和外部的各種電氣干擾,并受系統結構
發表于 03-02 01:17
?855次閱讀
單片機開發調試應注意的問題
單片機開發調試應注意的問題
1、使用總線不外引的單片機
·是最正統的單片機使用模式
·符合小型、簡單、可靠、廉價的單片機設計初衷
發表于 03-26 12:30
?1755次閱讀
單片機調試常見問題與解決方法
單片機調試是嵌入式系統開發中的一個重要環節,它涉及到對單片機程序的測試和優化,以確保系統能夠正常工作。在調試過程中,開發者可能會遇到各種問題。 1. 程序無法燒錄到
單片機Debug工具性能對比 單片機調試常用命令
。以下是對單片機調試工具性能的簡要對比以及一些常用的調試命令。 單片機Debug工具性能對比 Keil uVision 性能 :Keil u
評論