SJA1000的驱动用了网上找的,已经详细看过,符合Basic的通信的要求(看不出有什么问题,跟周工网站提供的函数基本是一样的)初始化设置都设好了,中断全部使能。 两个CAN模块(SJA1000+89S51,两模块是一样的,只是其中一个接了18B20,板上有两个LED,一个MAX7219驱动的四位数码管,一个蜂鸣器)。 本实验的目的是:一块将测得的温度发送到另一块板上并显示。
现在问题是:一块将测得的温度(18B20板上的)每隔10ms发送出去。有一个LED显示发送中断有效,不过闪烁频率时低时高(不断取反的);另一块接收模块,四位数码管显示0(即没收到数据),没有接收中断(已使能),交换两板也一样,即肯定是程序问题。但当复位接收的那个模块时(复位键),发送模块上的错误码中断指示LED亮,不过一会儿就灭了。后用接收模块上的MAX7219四位数据管的其中两位用来显示状态寄存器的值,其中接收状态位(RS)隔一段时间显示正在接收(跟发送模块的发送中断LED的闪烁频率有关),然后又不接收。 不清楚表达清楚了没?我现在想知道,在basic模块下,接收中断出不来会是什么原因?谢谢了~~ (手上有一老式20M双踪示波器,可以看到两条传输线都有占空比不同的方波(类似))。
|