4295|9

83

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

MEGAL8 485程序调不通,希望大家能帮帮忙,看一看~~~ [复制链接]

/*PD0为RXD,PD1为TXD,PD2为控制端~RE/DE;
整个程序就是测试下从外部发送到板子上的数据再返回
*/
#define F_CPU        8000000                // 定义晶振频率,硬件上采用7.3728M
#include
#include
#include

#define        SET_LED0        PORTD|=_BV(2);
#define CLR_LED0        PORTD&=~_BV(2);

volatile static uint8_t data;

int main(void)
{
        UCSRB = (1<         UBRRL = 51;                                                                                // 波特率9600

        DDRD = 0xfe;

        CLR_LED0;                                                 
        sei();
        while(1)
        {

        }
}
// 接收完成中断服务程序
SIGNAL(SIG_UART_RECV)
{
    data = UDR;
    _delay_ms(10);
    SET_LED0;
    _delay_ms(10);
   UCSRB |= _BV(UDRIE);                                        // 使能USART数据寄存器空中断
}


// USART数据寄存器空中断服务程序
SIGNAL(SIG_UART_DATA)
{
        UDR = data;
        _delay_ms(10);
        CLR_LED0;       
        _delay_ms(10);
        UCSRB &= ~(1< }

出现的问题是从串口调试助手上收到的全是00,做单个接受中断测试的时候感觉像是没有进入中断
数据传送是由485转232的转换工具 传到pc机的
希望大家帮忙看看程序哪里不对了

最新回复

不知道楼主解决了没有,我跟你遇到同样的问题,接收数据正常,但是发送数据的时候,用usb转485的线,串口调试助手收到的数据全是0,换了几个串口的软件都是一样的结果。一直找不到原因,如果楼主解决了,能在发给帖说明一下是什么问题吗,谢谢。  详情 回复 发表于 2009-12-10 21:44
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这种问题很不好说了。
不过这极有可能是你的配置不正确,比如485相关寄存器、中断服务程序及中断控制器等。调试一下看寄存器的值和预期是否一致。

---------------------
UCSRB = (1 <
RXCIE、RXEN、TXEN这些是怎么定义的, 是某一位的序号吗?

另外,中断怎么还传参数进去?

随便说说,不妥当处请多多包涵。
---------------------
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
M8的串口极其成熟,你应该先确认用RS232转换芯片(比如MAX232),以确保你这段程序的正确性。然后再考虑用485芯片。
还有,AVR的建议去www.ouravr.com讨论,现在改成www.ourdev.com了。唉,好久不玩avr了。
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

4
 
如果你手头有逻辑分析仪的话,开发起来就容易了
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
ding
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
ding
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

7
 
谢谢楼上的各位大侠,就是没谁说到点子上的
自己up下~~~
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

8
 
有示波器没有啊?
直接看你出来的数据对不对,一步一步看,应该能查出来哪里出了问题

另,能接受到全0的数据,应该说物理上是通的
是不是拨特率不一致导致的?
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 6 楼 napoleon_7th 的回复:
谢谢楼上的各位大侠,就是没谁说到点子上的
自己up下~~~


一个星期了还没确定?那估计不是什么紧急的任务了。

你的485转232的东西好吗?
你的M8出来的UART信号是好的吗?
你的PC上接收软件是好的吗?
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

10
 
不知道楼主解决了没有,我跟你遇到同样的问题,接收数据正常,但是发送数据的时候,用usb转485的线,串口调试助手收到的数据全是0,换了几个串口的软件都是一样的结果。一直找不到原因,如果楼主解决了,能在发给帖说明一下是什么问题吗,谢谢。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表