在线情况
1
  • 头像
  • 级别
  • 门派
  • 职务总版主
  • 声望+9
  • 财富5
  • 积分3065
  • 经验390701
  • 文章6744
  • 注册2006-03-07
   通用串行通讯发送中断标志位UTXIFG是在发生PUC(上电清除)或SWRST信号(串行状态机控制位)清除后使其置位。
   如果中断服务程序已启动或向发送数据缓存UTXBUF进行写操作可以使UTXIFG复位。
[COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
在线情况
2
  • 头像
  • 级别
  • 门派
  • 职务总版主
  • 声望+9
  • 财富5
  • 积分3065
  • 经验390701
  • 文章6744
  • 注册2006-03-07
嗯,关于这个问题。我也不好详细解释。要不要我们请位嘉宾来我们细说下这个问题。
[COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
在线情况
3
  • 头像
  • 级别
  • 门派
  • 职务总版主
  • 声望+9
  • 财富5
  • 积分3065
  • 经验390701
  • 文章6744
  • 注册2006-03-07
while ((IFG1 & UTXIFG0) == 0);是等待UTXIFG0为1。正如冰河所说,只有为1时,表示你可以往UTXBUF写数据了。TXBUF0 = RXTXBUFF;
[COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
在线情况
4
  • 头像
  • 级别
  • 门派
  • 职务总版主
  • 声望+9
  • 财富5
  • 积分3065
  • 经验390701
  • 文章6744
  • 注册2006-03-07
1:所指的复位是指UTXIFG0为0,也就是现在还不能向UTXBUF写数据.
2:也就是处理完发送后,UTXIFG0由0变1置位.也就说UTXIFG0为0后就立刻置位.
3:就是前面的两个原因.当你在程查询时或发送数据后UTXIFG0都不是为0.
[COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
在线情况
5
  • 头像
  • 级别
  • 门派
  • 职务总版主
  • 声望+9
  • 财富5
  • 积分3065
  • 经验390701
  • 文章6744
  • 注册2006-03-07
是的,UTXIFG0为0,也就是现在还不能向UTXBUF写数据.
[COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
在线情况
6
  • 头像
  • 级别
  • 门派
  • 职务总版主
  • 声望+9
  • 财富5
  • 积分3065
  • 经验390701
  • 文章6744
  • 注册2006-03-07
呵呵,这样学习讨论我们取得成功能.保持这种讨论氛围下去吧...
[COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
在线情况
7
  • 头像
  • 级别
  • 门派
  • 职务总版主
  • 声望+9
  • 财富5
  • 积分3065
  • 经验390701
  • 文章6744
  • 注册2006-03-07
  根据IFGx标志寄存器中UTXIFG0位判别是否可以要送发下一个数据。UTXIFG0位为1则可以发送新(下)一个数据。
  IFG1寄存器在PUC后的状态为:082H。也就是说上电后,UTXIFG0位和OFIFG位为1。
[COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
在线情况
8
  • 头像
  • 级别
  • 门派
  • 职务总版主
  • 声望+9
  • 财富5
  • 积分3065
  • 经验390701
  • 文章6744
  • 注册2006-03-07
你不必用“发”中断做“发”动作。如果想要发送1个数组,大可以直接在主程序中做发送数据动作。例程在DIY专区中有,自己看看吧。
[COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
Powered by LeadBBS 9.2 .
Page created in 0.1870 seconds with 8 queries.