打印

请教SJA1000大于8个字节数据的发送接收程序,30分

[复制链接]
6149|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
请教各位大侠关于SJA1000 CAN总线,PeliCAN模式分包发送程序,小弟刚学CAN总线,小于等于8个字节的数据,我会发送和接收,但是大于8个字节的,小弟就不知道怎么写发送和接收的子函数了;
上网查了一下,都说要分包发送,但是找不到相应的例程,自己也想不出该怎么写,所以请教各位,非常感谢。
unsigned char data SendDat[10]={,,,,,,,,,,,,,,,};//假如发送10个数据

void main(void)
{
    if(Event)
    {
         CAN_SendNbyte(SendDat);
    }
}

CAN_SendNbyte(unsigned char *SendDat)
{
//这里面就不知道该怎么写了,因为CAN一次只能发送8个数据,不知道该怎么去写发送大于8个数据的程序结构,请各位帮忙。
................
}

接收大于8个数据的程序也请给一下例程,在中断里面,或者在主程序里面都可以,谢谢。

相关帖子

沙发
yewuyi| | 2012-3-29 10:00 | 只看该作者
大于8个就拆成两个包不行吗?;P

使用特权

评论回复
板凳
刘前辈| | 2012-3-29 17:02 | 只看该作者
本帖最后由 刘前辈 于 2012-3-30 07:53 编辑

发送一帧都会写了,发送多帧很简单;见下面的协议图示:
       你只有2个节点,协议更简单:源节点地址、命令编码什么的都不需要,只要保留一字节 SegFlag 给发送帧标记序号就行了。——接收方把这一字节设置屏蔽——不关心。这样接收帧在64字节接收缓冲器中自动排列,连软件判别帧序号都免了。(当然判别一下更可靠。)

      这样,发送端可以连续发送32(或255)帧,但是接收端缓冲只能连续接收8帧64字节。





、、

使用特权

评论回复
地板
CIOneTwo|  楼主 | 2012-3-30 08:51 | 只看该作者
本帖最后由 CIOneTwo 于 2012-3-30 08:58 编辑

首先谢谢楼上的回答,但是小弟还是不明白啊,小弟比较笨,C语言也一般,可能问题表述的也不是很清楚。
void main(void)
{
    if(Event)
    {
         CAN_SendNbyte(SendDat, 10);//10为数据总数,或者20,30.......
    }
}

CAN_SendNbyte(unsigned char *SendDat, unsigned int Num) //Num数据总数
{
//这里面就不知道该怎么写了,因为CAN一次只能发送8个数据,不知道该怎么去写发送大于8个数据的程序结构,请各位帮忙。
................
}
如以上程序结构,我想写一个子函数,Num值是可变的,可以是10,20,30....不管我要发送多少个数据,只需调用这个子函数CAN_SendNbyte(unsigned char *SendDat, unsigned int Num),把需定义要发送的数据数组及发送个数就可以了。
小弟刚接触CANBUS是自学的,或许发送多帧数据不是用这么个子函数,就是一帧一帧发送数据的,譬如下面结构:

void main(void)
{
    if(Event)
    {
         CAN_SendNbyte(SendDat1);//SendDat1数组一寸8个数据
         CAN_SendNbyte(SendDat2);//SendDat2数组一寸8个数据
         CAN_SendNbyte(SendDat3);//SendDat3数组一寸8个数据
         .......................
    }
}

CAN_SendNbyte(unsigned char *SendDat) //发送一帧8个数据
{
................
}


-------------------------------------------------------------------------------------------------------------
还有一个问题,如果发送大于8个字节该怎么接收啊,就是在中断里面接收8个字节就释放一次接收缓冲区,然后再接收8个字节,再释放么?或者说是可以一次接收64个字节再释放?释放接收缓冲区应该就是清空接收缓冲区是吧?

很多不明白啊,最好能给个例程看一下啊(发送接收大于8个字节的),非常感谢啊。

使用特权

评论回复
5
yinshide| | 2014-3-27 22:06 | 只看该作者
加我 qq 381969491   can总线  交流

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:贫寒铸就人格,逆境创造人生。

0

主题

1194

帖子

1

粉丝