历史上的今天
今天是: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

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

(3)在Library OpTIons中将Printf formatter改成Large即可
上一篇:stm8引脚能否做成触摸输入
下一篇:教你如何玩转STM8单片机!
史海拾趣
|
处理器的体系结构定义了指令集(ISA)和基于这一体系结构下处理器的程序员模型。尽管每个处理器 性能不同,所面向的应用不同,每个处理器的实现都要遵循这一体系结构。ARM体系结构为嵌入系统发展 商提供很高的系统性能,同时保持优异的功耗和 面 ...… 查看全部问答> |
|
大家看一下,怎么样让这个板子上的SOUNDER响啊,用kei软件,C语言编写的程序应该是什么样的,哪位大侠帮我这个刚接触单片机的菜鸟编个程序啊,我怎么弄不响啊?谢谢大家了! QQ:553695150 [ 本帖最后由 tiankai001 于 2010-4-27 10:18 编辑 ]… 查看全部问答> |
|
要求如下: 一、基本功能要求:设计并制作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] ;-------------------------------------------------------------- ...… 查看全部问答> |
|
用总线连接方式控制HD44780液晶模块,D15-D8连接到液晶模块的DB7-DB0,A1和A0接到液晶的R/W和RS,RD和WE接到液晶的片选信号E。 哪位能给一个C语言读写IO空间的代码例子?多谢… 查看全部问答> |
|
ARM启动后,设置了PPL时钟工作频率,然后进入main函数执行,在main函数创建启动任务及其他任务,在启动任务里面创建系统滴答时钟定时器。 因为有个模块需要延时100MS复位时间,才能开始工作,初始化时间也要30MS左右。那么我能把这个 ...… 查看全部问答> |




