如需IAR工程,请关注VX公众号:Proteus仿真店子,回复:STM8L_USART
STM8L_4_USART:
1.User:工程及main文件
2.Hardware:USART,CLK,LED,Delay
3.STM8L15x_StdPeriph_Driver:STM8自带库文件
4.Debug:hex文件存放于EXE文件夹
5.Function: 发送字符,字符串,整形,浮点,hex等
/**
******************************************************************************
* @file main.c
* @author Alex——小白
* @version V1.0
* @date 2019.5.1
* @brief 串口发送字符,字符串,整形,浮点,hex等数据
由串口助手可知:浮点数发8.9,接收为8.899,0.01%误差
发8.92,收8.920;发8.925,收8.925,0误差
中断接收代码在stm8l15x_it.h中,收0,LED1亮,收1,LED1灭。
* @store 有家Proteus仿真店子
* @Link https://shop484534014.taobao.com/
* @Email 844545015@qq.com
******************************************************************************
* @attention All Rights Reserved
* @note 笔者在配置串口接收中断函数时,接收中断一直未响应,恼火大半天,
发现是中断没有使能 enableInterrupts(),你值得拥有。。。
**/
#include <stdint.h>
#include <string.h>
#include "stm8l15x.h"
#include "LED.h"
#include "Delay.h"
#include "CLK.h"
#include "USART.h"
void main(void)
{
uint8_t i = 0,j = 0;
CLK_HSI_Config(CLK_SYSCLKDiv_1); //HSI 1分频 16MHz
LED_Init();
USART1_Init(115200);
enableInterrupts();
while(1)
{
USART1_Send_Char('1');
for(i=0;i<2;i++)
{
LED0_Toggle();
for(j=0;j<25;j++)Delay(0xFFFF); //近似20ms*25=0.5s
}
USART1_Send_Str("234",3);
for(i=0;i<2;i++)
{
LED0_Toggle();
for(j=0;j<25;j++)Delay(0xFFFF); //近似20ms*25=0.5s
}
USART1_Send_Int(567);
for(i=0;i<2;i++)
{
LED0_Toggle();
for(j=0;j<25;j++)Delay(0xFFFF); //近似20ms*25=0.5s
}
USART1_Send_Float(8.925);
for(i=0;i<2;i++)
{
LED0_Toggle();
for(j=0;j<25;j++)Delay(0xFFFF); //近似20ms*25=0.5s
}
USART1_Send_Hex('0');
for(i=0;i<2;i++)
{
LED0_Toggle();
for(j=0;j<25;j++)Delay(0xFFFF); //近似20ms*25=0.5s
}
}
}
如需下载STM8L151C8 IAR源码工程,请关注公众号:
Proteus仿真店子
(若IAR IDE编译器以及驱动,后台回复:IAR;若STM8L相关参考文档,后台回复:STM8L手册;若需其它设计,后台回复:STM8L设计)