单片机
返回首页

stm8s中UART的用法(四种UART中断)

2019-09-17 来源:eefocus

一、应用实例


1.1系统功能


 使用STM8的USART进行自发自收(将发送引脚RXD短接到接收引脚TXD),发出数据:0,1,2。。。数据,能接收到自己发出的数据:0,1,2。。。使用LED作出简单指示!


1.2硬件设计

LED控制电路原理图

UART电路原理图


1.2软件设计


/*********************************************************************

目标系统: 基于STM8单片机 

应用软件: 

*********************************************************************/


/*----------------------------------------------------------------------

实验内容:

USART自发自收,使用PB口的LED指示接收到的数据,观察是否与发送的数据一致。

----------------------------------------------------------------------

硬件连接:  

将MCU.RXD与MCU.TXD使用短路帽短接,将PB口的LED指示灯使能开关切换到'ON'状态。

----------------------------------------------------------------------*/


#include


#define LED_DDR  PB_DDR

#define LED_PORT PB_ODR

#define LED_CR1  PB_CR1

#define LED_CR2  PB_CR2


void Init_UART3(void)

{

      UART3_CR1=0x00;

      UART3_CR2=0x00;

      UART3_CR3=0x00;

      // 设置波特率,必须注意以下几点:

      // (1) 必须先写BRR2

      // (2) BRR1存放的是分频系数的第11位到第4位,

      // (3) BRR2存放的是分频系数的第15位到第12位,和第3位

      // 到第0位

      // 例如对于波特率位9600时,分频系数=2000000/9600=208

      // 对应的十六进制数为00D0,BBR1=0D,BBR2=00


      UART3_BRR2=0x00;

      UART3_BRR1=0x0d;


      UART3_CR2=0x2c;//允许接收,发送,开接收中断

}


void UART3_sendchar(unsigned char c)

{

      while((UART3_SR & 0x80)==0x00);

      UART3_DR=c;

}


@far @interrupt void UART3_Recv_IRQHandler (void)

{

      unsigned char ch;

      ch=UART3_DR;

      LED_PORT=ch;

      return;

}


void main(void)

{

      unsigned char i=0;


      LED_DDR=0XFF;

      LED_CR1=0XFF;

      LED_CR2=0X00;

      Init_UART3();

      _asm('rim');//关中断


      while(1)

      {

            UART3_sendchar(i);

             i++; 

      };

}


二、特别注意波特率的计算设置方式


三、中断设置

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • RS-485基础知识:处理空闲总线条件的两种常见方法

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章