397379140 发表于 2009-10-9 00:52:04

请教马老师:你的书中(AVR单片机嵌入式系统原理与应用实践)的demo14.1 c中如果直接把发

如题:也就是完全接收完一个数据包后(有5个数据)再进行处理,结果单片机接收不到上位机的数据。如加上发送部分的程序,则又可以接收。这是为什么呢?我找了好几天都没找出问题来。。

machao 发表于 2009-10-9 01:09:14

你把哪个发送部分注释掉了?

如果是主程序中的发送部分,只能注释掉5个putchar语句,Uart_RecvFlag = 0可不能注释掉,否则接收部分把后收到的都放弃了。

如果你把发送中断服务注释掉了,那么在putchar函数中的第一句就是死循环,因为发送缓冲区满了5个字,如果中断不能发送。缓冲区一直满的,程序在这里死等发送。

397379140 发表于 2009-10-9 12:50:49

晕死,都1点多了马老师还在线上啊?
我把发送部分全都注释掉了,包括发送中断服务程序,putchar函数以及主函数里的5个putchar语句。
会不会因为用ICCAVR的原因呢?我用的是ICCAVR6.31A。
在AVRSTUDIO里看到汇编第一句没有跳转:
0000000E:   FFFF      ???                      Data or unknown opcode   //这里正常的话会有跳转语句。jump...
+0000000F:   FFFF      ???                      Data or unknown opcode
+00000010:   FFFF      ???                      Data or unknown opcode
+00000011:   FFFF      ???                      Data or unknown opcode
+00000012:   FFFF      ???                      Data or unknown opcode
+00000013:   FFFF      ???                      Data or unknown opcode
+00000014:   FFFF      ???                      Data or unknown opcode
+00000015:   FFFF      ???                      Data or unknown opcode
+00000016:   940C006F    JMP   0x0000006F       Jump



为什么呢?。。
页: [1]
查看完整版本: 请教马老师:你的书中(AVR单片机嵌入式系统原理与应用实践)的demo14.1 c中如果直接把发