您的位置 首页 系统

根据STM8L15x单片机的串口printf输出

基于STM8L15x单片机的串口printf输出-这里我们以STM8L15x系列单片机使用ADC内部参考电压测量VDD电压并将电压值value通过窗口打印为例编写程序,(STM8L使用ADC内部参考电压通道测量VDD电压)

这儿咱们以STM8L15x系列单片机运用ADC内部参阅电压丈量VDD电压并将电压值value经过窗口打印为例编写程序,(STM8L运用ADC内部参阅电压通道丈量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位数据长度,1位中止位,无校验位,发送形式

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); //发送8位数据

while(!USART_GetFlagStatus (USART1,USART_FLAG_TXE));//等候发送完毕

return data;

}

int main( void )

{

u16 adc1_value=0;

float value=0;

Adc_Init();

Usart_Init();

while(1)

{

ADC_SoftwareStartConv(ADC1); //敞开软件转化

while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//等候转化完毕

ADC_ClearFlag(ADC1,ADC_FLAG_EOC);//铲除对应标志

adc1_value=ADC_GetConversionValue(ADC1); //获取转化值

value=1.225*4096/adc1_value; //单位V

printf(“ad=%fV\r\n”,value);

}

}

IAR用printf输出与keil设置不太相同,首要当然先要包括头文件“stdio.h”,然后改写putchar函数

在IAR开发环境中进行如下装备:

(1)右击Demo-Debug挑选opTIon

根据STM8L15x单片机的串口printf输出

(2)在OpTIons中将Library ConfiguraTIon改成Full

根据STM8L15x单片机的串口printf输出

(3)在Library OpTIons中将Printf formatter改成Large即可

根据STM8L15x单片机的串口printf输出

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/347590.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部