导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→初学者:串口中断是收完一帧之后中断一次还是全部收完之后再中断[dirty]

 *第8688篇: 初学者:串口中断是收完一帧之后中断一次还是全部收完之后再中断?

  
楼 主:dirty 2003年3月4日09:56
 初学者:串口中断是收完一帧之后中断一次还是全部收完之后再中断?
如果发送方是一次性发送多个字符到MCU.那么串口中断是收完一帧(一个字符)之后
中断一次还是全部收完之后再中断?
  
2楼:dirty 2003年3月4日12:48
 采用这个方法可不可以?
在中断处理的地方,我这样处理可以吗:
while (TC35_UCSRA & (1<<TC35_RXC))
{
data = TC35_UDR; 
}
这样可以一次性把所有发过来的东西读出来吗?
因为我上一次做的时候,中断函数可能耗时太多,导致收到的内容有错误。
  
3楼:westwoods 2003年3月4日21:01
 能具体一点吗
happymcu说的可能是正确的,你看他的名字就知道他很在行MCU  :》
蓝天说的也是可以的,所以我想你是用什么CPU,怎么配置收发寄存器的问题,我的驱动就
是一个字节中断一次。
你的while代码我不太明白,我不熟(是什么CPU我都不懂,sorry!),但我觉得在接收中
断服务程序(ISR)中用while来查询“接收事件寄存器”的做法可以,因为一直要处理到该
事件寄存器不再有中断事件退出ISR才好。另外接收还和接收缓存的大小有关。请各位大侠
跟贴。
  
4楼:dirty 2003年3月5日09:44
 我用的是avr atmega128
  
5楼:westwoods 2003年3月4日10:44
 好像都可以
我的CPU(PPC850)可以一个字节中断一次,或者是一个帧(多个字节)中断一次,接收到
的数据放在系统循环缓存中,在上层应用Read命令是对该缓存的操作.请继续讨论
  
6楼:蓝天 2003年3月4日11:17
 应该是每收一帧,中断一次。
不可能全部收完之后再中断。
  
7楼:leezongfan 2003年3月5日08:58
 我记得是每一个字节中断一次,
  
8楼:happymcu 2003年3月4日13:33
 接收到一个字节中断一次!
  
9楼:Kuang-chingTsui 2003年3月4日21:44
 对嘛!
对嘛!看一看51的用户手册就明白了,异步串行通讯方式哟。

>>>>>>对该主题发表你的看法

本主题贴数9,分页: [第1页]


[上一篇主题]:硬件:普通电话Modem芯片用什么好?

[下一篇主题]:硬件:求教:DC 12V 转换成AC-220V逆变电源的主要芯片型号