一、应用实例
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++; }; } 二、特别注意波特率的计算设置方式 三、中断设置
上一篇:STM8L串口中断进不去
下一篇:STM8S UART串口使用中断收发数据
推荐阅读最新更新时间:2024-11-10 23:08
设计资源 培训 开发板 精华推荐
- LTC3638IMSE 6W LED 驱动器降压稳压器的典型应用电路
- LT4276BUFD LTPoE++ 70W 电源在正向模式下的典型应用电路
- LTC2992IDE 高侧和低侧电流检测在宽范围电源上的典型应用
- Esp32C3键盘 -2
- 用于完整 3V、12 位、1MHz 模数转换系统的 AD8601ARTZ-REEL7 运算放大器的典型应用
- LT6656BCS6-2.048、2.048V 精密电流和升压电压基准的典型应用
- 使用 Broadcom Inc 的 HCPL-7840 的参考设计
- 树莓派掌上电脑
- 使用 Analog Devices 的 LTC3204 的参考设计
- LTC2946HDE 轨至轨电源、电荷和能量监视器的典型应用