历史上的今天
今天是:2024年12月13日(星期五)
2018年12月13日 | 串口接收实例——空闲中断
2018-12-13 来源:eefocus
//先看51的
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
UsartReceive[UsartReadCnt] = SBUF;
UsartReadCnt++;
if(UsartReadCnt > ReadLength-2)//防止溢出
{
UsartReadCnt = 0;
}
}
}
void Timer0Interrupt(void) interrupt 1
{
TH0 = (65536 - 5000) / 256;
TL0 = (65536 - 5000) % 256; //定时5ms
if(UsartReadCnt != 0)//接收到数据
{
if(UsartIdleCnt == UsartReadCnt)
{
UsartReadCntCopy = UsartReadCnt;
UsartReadCnt = 0;
UsartIdleCnt = 0;
UsartFlag = 1;
}
else
{
UsartIdleCnt = UsartReadCnt;
}
}
}
...
if(UsartFlag == 1)
{
UsartFlag = 0;
...
}
...
//STM32的
void USART1_IQRHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)//表示接收到数据
{
Usart1ReadBuff[Usart1ReadCnt++] = USART_ReceiveData(USART1);
if(Usart1ReadCnt > UsartReadLen - 10)
{
Usart1ReadCnt = 0;
}
}
}
void TIM2_IRQHandler(void)
{
if(TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)
{
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
if(Usart1ReadCnt != 0)
{
if(Usart1ReadCnt == Usart1IdleCnt)
{
Usart1ReadCntCpoy = Usart1ReadCnt;
Usart1ReadCnt = 0;
Usart1IdleCnt = 0;
Usart1ReadFlag = 1;
}
}
}
}
...
if(Usart1ReadFLag == 1)
{
Usart1ReadFlag = 0;
...
}
...
上一篇:LCD1602例程
下一篇:51定时器配置PWM的技巧
史海拾趣
|
气隙位置对电感参数的影响及改进除了用铁粉芯作磁芯的电感外,一般电感(Flyback变压器为耦合电感)。气隙的位置对电感参数有较大影响,下面基于有限元计算对此问题进行分析并给出一种新结构之磁芯。 为方便起见,从一EE型的Flyback变压器开始分析 ...… 查看全部问答> |
|
题目:若使蜂鸣器响5次,约0.5秒响.一秒停(p1.0输出1时,三极管截至,蜂鸣器不响,机器周期为去1us) BEEP:MOV R7,#5 BEEPL:CLR P1.0 LCALL DEL5   ...… 查看全部问答> |
|
一个内存驱动器的源代码 http://www.pudn.com/downloads/sourcecode/windows/vxd/detail1558.html 虚拟串口用VC编译 http://www.pudn.com/downloads170/sourcecode/windows/vxd/detail788464.html 8139网卡驱动源码 http://www.pudn.co ...… 查看全部问答> |
|
用Studio 5.0 Platform Builder编译出来的SDK怎么用? 编译出来的SDK只有5M不到,直接将msi文件运行安装之后,在建立一个简单的工程都编译不过。 一般一个标准SDK都有100M多的样子,为什么我自己编译出来的只有SDK只有几兆呢,哪位知道这个SDK到底是怎么用的,还要什么别的设置么,找MSDN,也没找到。 ...… 查看全部问答> |
|
根据贴装精度要求以及组件种类和数量的不同,目前常用的方案如下几种: 方案1 单片FPC上的简单贴装 1. 适用范围 A. 组件种类:以电阻电容等片装为主。 B. 组件数量:每片FPC需要贴装的组件数量很少,一般只有几个组件 ...… 查看全部问答> |
|
单向的话,我习惯用74HC245做转换。 但比较烦人的就是双向接口了。比如驱动OLED、点阵液晶,模拟并口需要读取和写入双向操作,这就比较复杂。再加上我的这个模拟并口又与USB芯片的并口复用。电路上就出现了问题。 大家在双向逻辑电平转换时都是怎 ...… 查看全部问答> |
|
求全新msp430 Value Line LaunchPad,了解如何购买的也请进 谁那里有多余的全新msp430 Value Line LaunchPad,想求一个,或者有谁了解如果购买。(PS:现在还可以申请吗?)… 查看全部问答> |




