历史上的今天
今天是:2024年09月27日(星期五)
2021年09月27日 | stm8s跳出中断程序c语言,STM8 UART接收中断程序
2021-09-27 来源:eefocus
软件设计
/*----------------------------------------------------------------------
实验内容:
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++;
};
}
史海拾趣
|
真实世界的应用需要真实世界的物理连接,一般来说,这意味着模拟信号要在系统内的某处被数字化处理,以便于微处理器、ASIC或FPGA采集数据并做出决策。 基本选用标准 当选择一款模拟数字转换器(ADC)时,大多数设计师似乎只关注几个主 ...… 查看全部问答> |
|
1. 51单片机 P2.5 I/O口上的LED灯一闪一闪: #include <reg51.h>sbit led0=P2^5; void delay () { unsigned int a; a=50000; while (a--); } void main (main){ vo ...… 查看全部问答> |
|
Linus宣布了 3.5 正式版内核,3.5 版本最核心的特性包括CoDel 队列管理算法,seccomp 过滤器沙箱机制,autosleep,uprobes用户空间侦测子系统,contiguous memory allocator, 新的kcmp()系统调用, Ext4 文件系统的metadata checksumming等等,详情请 ...… 查看全部问答> |
|
主要参数:最大输出电压40V,最大输出电流10A,最大输出功率400W,能满足一般用途。 本设计采用RL78/G14高性能16位单片机作为主控芯片,采集经运算放大器放大后的输出电压电流信号,计算输出电压电流的误差,再通过MOS管调整输出电压电流,校正误 ...… 查看全部问答> |




