一、使用USART發(fā)送數(shù)據(jù)
在單片機(jī)程序調(diào)試過程中,串口打印調(diào)試方法是非常重要的手段,在使用串口調(diào)試時(shí),我們更多的是使用printf。但是下面我們不介紹printf,介紹一下另外幾種我們常用的調(diào)試方法。具體方法如下:
1、發(fā)送單個(gè)字符
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、發(fā)送固定長度的字符串
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、發(fā)送任意長度的字符串
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);
}
二、如何發(fā)送16bit的數(shù)據(jù)
??單片機(jī)(STM8)的USART發(fā)送的是8bit的數(shù)據(jù),所以如果要發(fā)送16bit的數(shù)據(jù),則需要將16bit的數(shù)據(jù)轉(zhuǎn)換為8bit的高低兩個(gè)字節(jié)進(jìn)行發(fā)送,需做如下處理。
u16 data;
u8 high_byte,low_byte;
high_byte=data>>8;
low_byte=data;
則經(jīng)過這樣的轉(zhuǎn)換之后,就可以直接使用USART進(jìn)行發(fā)送了。
三、使用翻轉(zhuǎn)電平的方式測量程序執(zhí)行時(shí)間
??我們想要知道某一段代碼的執(zhí)行時(shí)間,可以通過示波器來測量,在需要測量的代碼處做一個(gè)翻轉(zhuǎn)電平的程序,就可以通過示波器來查看程序的執(zhí)行時(shí)間了。代碼如下:
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;
}
-
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44991瀏覽量
650415 -
調(diào)試
+關(guān)注
關(guān)注
7文章
612瀏覽量
34714 -
串口
+關(guān)注
關(guān)注
15文章
1588瀏覽量
79935 -
程序
+關(guān)注
關(guān)注
117文章
3826瀏覽量
82977 -
Printf
+關(guān)注
關(guān)注
0文章
84瀏覽量
14239
發(fā)布評論請先 登錄
單片機(jī)串口模塊調(diào)試方法

單片機(jī)破解的常用方法及應(yīng)對策略
常用單片機(jī)介紹
單片機(jī)系統(tǒng)硬件抗干擾常用方法實(shí)踐
單片機(jī)開發(fā)調(diào)試應(yīng)注意的問題
單片機(jī)最小系統(tǒng)的調(diào)試方法_單片機(jī)最小系統(tǒng)設(shè)計(jì)制作及開發(fā)流程

評論