请教CAN总线波特率的问题!谢谢! 点击:2203 | 回复:2



疯狗

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 4回
  • 年度积分:0
  • 历史总积分:14
  • 注册:2004年5月20日
发表于:2004-05-25 11:28:00
楼主
各位高手:    我刚刚接触CAN总线。我现在的设计中用的单片机是P87C591,由于有RS232接口,所以我采用了11.0592M的晶振,但是我现在发现找11.0592M晶振对应的CAN总线波特率的设置比较困难,但是如果换成12M的晶振,RS232的一些波特率不能用。所以我想请问大家:11.0592M的晶振能用于CAN吗?为什么找不到11.0592M晶振对应的CAN的波特率呢?    谢谢!!



笨苯熊

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:56
  • 注册:2004年5月26日
发表于:2004-05-26 22:59:00
1楼
可以,自己计算。 如有问题,联系我们: 010-63329499

清风笑

  • 精华:1帖
  • 求助:0帖
  • 帖子:4帖 | 99回
  • 年度积分:0
  • 历史总积分:1294
  • 注册:2001年11月08日
发表于:2004-05-28 16:16:00
2楼
/* ************************************************************************************************************************ **函数原型: char SJASetBandRateStandard(unsigned char BandRateSize) **参数说明: BandRateSize 标准常用波特率(Kbps) ** 0 5 ** 1 10 ** 2 20 ** 3 40 ** 4 50 ** 5 80 ** 6 100 ** 7 125 ** 8 200 ** 9 250 ** 10 400 ** 11 500 ** 12 666 ** 13 800 ** 14 1000 **返回值: ** 0 ; 设置总线定时器成功 ** SJA_SETBTR_ERR ; 设置总线定时器错 ** SJA_NOBTRSIZE ;波特率不能设为此值 ** **说明: 该函数用于设定在系统晶体为12MHZ时,常用的标准波特率的值。 ** 参数BandRateSize只能为0~14,其它的值会返回SJA_NOBTRSIZE错误 ** 本函数只能用于复位模式 ************************************************************************************************************************ */ unsigned char code SJA_BTR_CODETAB[]={ 0xbf,0xff, //;5KBPS的预设值 0xef,0xff, //;10KBPS的预设值1 0xd7,0xff, //;20KBPS的预设值1 0xcb,0xFF, //;40KBPS的预设值1 0x47,0x2F, //;50KBPS的预设值 0xc5,0xFF, //;80KBPS的预设值1 0xc9,0xa7, //;100KBPS的预设值1 0x45,0x2B, //;125KBPS的预设值1 0x04,0xa7, //;200KBPS的预设值1 0x01,0x1c, //;250KBPS的预设值 0x02,0x25, //;400KBPS的预设值1 0x01,0x45, //;500KBPS的预设值1 0x80,0xb6, //;666KBPS的预设值 0x00,0x16, //;800KBPS的预设值 0x01,0x12 //;1000KBPS的预设值1 };

热门招聘
相关主题

官方公众号

智造工程师