這里我們以STM8L15x系列單片機使用ADC內(nèi)部參考電壓測量VDD電壓并將電壓值value通過窗口打印為例編寫程序,(STM8L使用ADC內(nèi)部參考電壓通道測量VDD電壓)
usart.h頭文件:
#ifndef _usart_H
#define _usart_H
#include “stm8l15x.h”
void Usart_Init(void);
#endif
usart.c源文件:
#include “usart.h”
void Usart_Init(void)
{
CLK_PeripheralClockConfig (CLK_Peripheral_USART1,ENABLE); //開啟USART1時鐘
USART_Init(USART1,9600,USART_WordLength_8b,USART_StopBits_1,USART_Parity_No,USART_Mode_Tx); //USART初始化,波特率9600,8位數(shù)據(jù)長度,1位停止位,無校驗位,發(fā)送模式
USART_Cmd (USART1,ENABLE);//使能USART1
}
#include “stm8l15x.h”
#include “adc.h”
#include “usart.h”
#include “stdio.h”
int putchar(int data)
{
USART_SendData8(USART1,(u8)data); //發(fā)送8位數(shù)據(jù)
while(!USART_GetFlagStatus (USART1,USART_FLAG_TXE));//等待發(fā)送完畢
return data;
}
int main( void )
{
u16 adc1_value=0;
float value=0;
Adc_Init();
Usart_Init();
while(1)
{
ADC_SoftwareStartConv(ADC1); //開啟軟件轉(zhuǎn)換
while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//等待轉(zhuǎn)換結(jié)束
ADC_ClearFlag(ADC1,ADC_FLAG_EOC);//清除對應(yīng)標志
adc1_value=ADC_GetConversionValue(ADC1); //獲取轉(zhuǎn)換值
value=1.225*4096/adc1_value; //單位V
printf(“ad=%fV ”,value);
}
}
IAR用printf輸出與keil設(shè)置不太一樣,首先當然先要包含頭文件“stdio.h”,然后改寫putchar函數(shù)
在IAR開發(fā)環(huán)境中進行如下配置:
(1)右擊Demo-Debug選擇opTIon
(2)在OpTIons中將Library ConfiguraTIon改成Full
(3)在Library OpTIons中將Printf formatter改成Large即可
(4)完成上述設(shè)置后編譯整個工程,然后下載程序到STM8L15x板子中并進入到Debug調(diào)試環(huán)境中,點擊View-》Terminal I/O調(diào)出虛擬終端,然后全部運行,就可以在Terminal窗口中看到打印信息。
-
單片機
+關(guān)注
關(guān)注
6071文章
45265瀏覽量
660756 -
STM8L15X
+關(guān)注
關(guān)注
1文章
7瀏覽量
9272
原文標題:基于STM8L15x單片機的串口printf輸出
文章出處:【微信號:changxuemcu,微信公眾號:暢學單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
STM8L15X能不能直接用于IC卡讀寫?
STM8L15x系列微控制器是否有安全數(shù)據(jù)表?
STM8L15x I2C:無法寫入I2C寄存器
STM8L15X單片機的相關(guān)資料分享
基于STM8L15x單片機的串口printf輸出

51單片機串口通訊需要注意的寄存器及51單片機使用PRINTF的示例程序

如何在Keil中使用51單片機進行printf串口輸出

STM8L15x STDPERIPH Lib固件庫的資料合集免費下載
51單片機串口通信調(diào)試printf函數(shù)重定向輸出打印

stm32單片機串口使用printf及u3_printf

ES0235_STM32L15xxE和STM32L15xVD-X單片機的局限性

51單片機中為什么很少出現(xiàn)printf的身影

評論