智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6116|回复: 9
打印 上一主题 下一主题

[通讯类] K60单片机如何用串口中断服务函数接收数据包?

[复制链接]

5

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
威望
176
贡献
89
兑换币
106
注册时间
2015-12-10
在线时间
36 小时
毕业学校
电子科技大学
1#
发表于 2016-3-15 14:58:49 | 显示全部楼层
这是我看的学长的程序,前面为什么要赋值0xAA,如果说是帧头的话我看后面又没有帧尾,那我觉得意义也不大啊。不如直接发送数组就可以了!
data_to_send[_cnt++]=temp1[0]>>8; data_to_send[_cnt++]=temp1[0];  不太明白他爸数据右移八位是为了什么?

void Data_Send(void)
{
        uint8 _cnt=0;
        data_to_send[_cnt++]=;         
        data_to_send[_cnt++]=0xAA;
        data_to_send[_cnt++]=0x02;
        data_to_send[_cnt++]=0;            
        data_to_send[_cnt++]=temp1[0]>>8;  
        data_to_send[_cnt++]=temp1[0];  
        data_to_send[_cnt++]=temp1[1]>>8;
        data_to_send[_cnt++]=temp1[1];
        data_to_send[_cnt++]=temp1[2]>>8;
        data_to_send[_cnt++]=temp1[2];
        data_to_send[_cnt++]=temp1[3]>>8;
        data_to_send[_cnt++]=temp1[3];
        data_to_send[_cnt++]=temp1[4]>>8;
        data_to_send[_cnt++]=temp1[4];
        data_to_send[_cnt++]=temp1[5]>>8;
        data_to_send[_cnt++]=temp1[5];
        data_to_send[_cnt++]=temp1[6]>>8;
        data_to_send[_cnt++]=temp1[6];
        data_to_send[_cnt++]=temp1[7]>>8;
        data_to_send[_cnt++]=temp1[7];
        data_to_send[_cnt++]=temp1[8]>>8;
        data_to_send[_cnt++]=temp1[8];

        data_to_send[3] = _cnt-4;
       
        uint8 sum = 0;
        for(uint8 i=0;i<_cnt;i++)
                sum += data_to_send[i];
        data_to_send[_cnt++] = sum;          //22个数据

        LPLD_UART_PutCharArr(UART3, data_to_send, _cnt);
}
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-19 06:30 , Processed in 0.034218 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表