历史上的今天
返回首页

历史上的今天

今天是:2025年08月13日(星期三)

正在发生

2020年08月13日 | 基于STM8L15x单片机的串口printf输出程序分享

2020-08-13 来源:elecfans

这里我们以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=%fVrn”,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输出程序分享

推荐阅读

史海拾趣

Electroswitch公司的发展小趣事

Electroswitch Electronics Products(以下简称“Electroswitch”)成立于1986年,是Electro Switch Corp的一个子公司,后者早在1946年就已创立。在创立之初,Electroswitch就致力于设计和制造高品质的开关产品,以满足电子应用领域的各种需求。通过不断的技术创新和产品优化,Electroswitch逐渐在电子行业中树立了良好的声誉。

Comus_International公司的发展小趣事

Comus International的创始之路始于1978年的美国。最初,公司专注于住宅和商业恒温器的玻璃水银倾斜开关的制造。由于产品质量上乘,很快在市场上赢得了良好的口碑,实现了立竿见影的成功。这种成功为公司的后续发展奠定了坚实的基础,也为Comus International的快速增长创造了条件。

Cybernetic Micro Systems公司的发展小趣事

随着智能手机市场的迅猛发展,CMS看到了新的机遇。公司投入大量研发资源,成功开发出一款专为智能手机设计的超低功耗芯片。这款芯片不仅性能卓越,而且能够有效延长手机的续航时间。CMS通过与多家知名手机厂商合作,将这款芯片广泛应用于各类智能手机中,从而迅速打开了市场。

ELMEC Technology Of America Inc公司的发展小趣事

在ELMEC Technology Of America Inc公司初创时期,创始人李明和他的团队面临着一个巨大的挑战:如何开发一款能在市场上脱颖而出的电子产品。经过无数次的实验和失败,他们最终成功研发了一款高效能、低功耗的半导体芯片。这款芯片的问世不仅为公司带来了第一笔可观的收入,也奠定了ELMEC在电子行业的技术领先地位。

DACHANG公司的发展小趣事

在竞争激烈的电子行业中,DACHANG公司始终坚持以品质为核心。公司不断引进先进的生产设备和技术,严格把控产品质量,确保每一件产品都能达到客户的期望。正是这种对品质的执着追求,让DACHANG公司的产品在市场上赢得了良好的口碑,公司也逐渐扩大了自己的市场份额。

EMLSI公司的发展小趣事

人才是企业发展的根本动力。EMLSI公司深知这一点,因此始终将人才战略作为企业发展的重要支撑。公司建立了完善的人才培养体系,为员工提供广阔的发展空间和良好的职业前景。同时,EMLSI还注重引进外部优秀人才,为企业注入新的活力和创新力。这种对人才的重视和投入让EMLSI在激烈的市场竞争中始终保持领先地位。

问答坊 | AI 解惑

认识ARM体系结构的发展

处理器的体系结构定义了指令集(ISA)和基于这一体系结构下处理器的程序员模型。尽管每个处理器 性能不同,所面向的应用不同,每个处理器的实现都要遵循这一体系结构。ARM体系结构为嵌入系统发展 商提供很高的系统性能,同时保持优异的功耗和 面 ...…

查看全部问答>

FPGA、CPLD常用protel库

FPGA、CPLD常用protel库…

查看全部问答>

[51] 郭天祥十天学习51单片机仿真板

大家看一下,怎么样让这个板子上的SOUNDER响啊,用kei软件,C语言编写的程序应该是什么样的,哪位大侠帮我这个刚接触单片机的菜鸟编个程序啊,我怎么弄不响啊?谢谢大家了! QQ:553695150 [ 本帖最后由 tiankai001 于 2010-4-27 10:18 编辑 ]…

查看全部问答>

我要做一个A点阵电子显示屏!~!~大家帮帮忙!~

要求如下: 一、基本功能要求:设计并制作LED电子显示屏和控制器。 1.自制一台简易16行*32列点阵显示的LED电子显示屏; 2.自制显示屏控制器,扩展键盘和相应的接口实现多功能显示控制,显示屏显示数字和字母,亮度可用按键连续调整。 3.显示屏 ...…

查看全部问答>

[求助]求高人帮我看下程序

;-------------------------------------------------------------------------- ;[H1+H2]+[ADR]+[CMD]+[CRC] ;[L1+L2]+[ID]+[TEM_1]+[TEM_2]+[TEM_3]+[TEM_4]+[TEM_5]+[DOOR] ;-------------------------------------------------------------- ...…

查看全部问答>

COTS电源

COTS产品是指一些现有的,容易使用,无需修改的元器件。相对于其它可以根据特殊情况而特定应用的系统而言,COTS系统更能节省成本和时间。 目前的军用开关电源或军用电源模块通常由COTS产品组成,主要包括军用DC-DC电源和军规电源滤波器。 COTS产品 ...…

查看全部问答>

水质检测器电路

本帖最后由 jameswangsynnex 于 2015-3-3 19:54 编辑   …

查看全部问答>

请教c语言读写IO空间

用总线连接方式控制HD44780液晶模块,D15-D8连接到液晶模块的DB7-DB0,A1和A0接到液晶的R/W和RS,RD和WE接到液晶的片选信号E。 哪位能给一个C语言读写IO空间的代码例子?多谢…

查看全部问答>

周公的M0有问题么

周公的M0有问题吧   每次编程序 是直接复制的前一个工程 然后修改代码的   为什么隔一段时间就无法写入程序 然后就要ISP擦除   我不可能给芯片加密的啊   已经出现过3次了  觉得很郁闷…

查看全部问答>

UCOS的问题请教下。

ARM启动后,设置了PPL时钟工作频率,然后进入main函数执行,在main函数创建启动任务及其他任务,在启动任务里面创建系统滴答时钟定时器。    因为有个模块需要延时100MS复位时间,才能开始工作,初始化时间也要30MS左右。那么我能把这个 ...…

查看全部问答>