写一个CAN程序流程是怎样的 主函数里应该做些人什么

一对二加王炸 2017-08-25 07:23:39
...全文
857 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
一对二加王炸 2017-08-28
  • 打赏
  • 举报
回复
我在写1个CAN 大神帮我看看哪错了
Jack_huang_1987 2017-08-27
  • 打赏
  • 举报
回复
打算好好了解一下CAN。
tianxj001 2017-08-26
  • 打赏
  • 举报
回复
引用 5 楼 qq_39808019 的回复:
不对 就是说我在while里传入数据长度和待发送数据,然后置1,我上面的程序错误 就是因为没有传参数,所以并没有标识ID?
对头,你发送函数配置的只是CAN基本参数,可邮箱是空的,你没在主函数里面填充邮箱数据,它是不会发送的。
一对二加王炸 2017-08-26
  • 打赏
  • 举报
回复
没有实际调用出来?
一对二加王炸 2017-08-26
  • 打赏
  • 举报
回复
不对 就是说我在while里传入数据长度和待发送数据,然后置1,我上面的程序错误 就是因为没有传参数,所以并没有标识ID?
一对二加王炸 2017-08-26
  • 打赏
  • 举报
回复
这样的话我在TX和RX函数里已经配置好了,再MAIN里直接调用一次就行了?while里可以是空的?
tianxj001 2017-08-26
  • 打赏
  • 举报
回复
所谓发送,就是对配置好的CAN的某个空邮箱(FIFO),设置标识符(也就是前面一个问题你曾经问过的STID或者EXID),数据长度和待发送数据(这个就不需要解释了吧),然后对CAN_TIxR寄存器的TXRQ位置’1’,来请求发送。这就是MAIN里面做的动作。 剩下的就是CAN硬件的事情了: TXRQ位置’1’后,邮箱就不再是空邮箱;而一旦邮箱不再为空置,软件对邮箱寄存器就不再有写的权限。TXRQ位置1后,邮箱马上 进入挂号状态,并等待成为最高优先级的邮箱(具体参考CAN发送优先级),一旦邮箱成为最高优先级邮箱,其状态就变为预定发送状态。等CAN总线进入空闲状态,预定发送邮箱中的报文就马上被发送(进入发送状态)。邮箱中的报文被成功发送后,它又变为空置邮箱;硬件相应地对CAN_TSR寄存器的RQCP和TXOK位置1,来表明一次成功发送。开了中断的,会在完成发送后触发发送中断。
worldy 2017-08-26
  • 打赏
  • 举报
回复
RX、Tx的是中断函数吧,中断函数不要放在主程序里,接收到数据或者发送完数据,自己会进入程序 Tx最开始的时候在主程序必须有个触动,才会进入
一对二加王炸 2017-08-26
  • 打赏
  • 举报
回复
怎么去写这个发送 我还是不太理解 能不能示范1个简单的while里怎么写的
tianxj001 2017-08-26
  • 打赏
  • 举报
回复
CAN的发送中断,只有一种,就是发送邮箱变空,硬件有几个邮箱,那么那几个邮箱都可以触发发送邮箱变空中断。 接受中断有下面几种:邮箱接收一个新报文、邮箱满了、邮箱溢出。 还有CAN错误和状态变化中断:出错、唤醒(在CAN接收引脚上监视到帧起始位(SOF))、CAN进入睡眠模式。
一对二加王炸 2017-08-26
  • 打赏
  • 举报
回复
can的中断和一般通信中断有什么区别?
一对二加王炸 2017-08-26
  • 打赏
  • 举报
回复
大神留个联系方式可好
tianxj001 2017-08-25
  • 打赏
  • 举报
回复
其实和传统通信类硬件调试差不多,首先你得有一个USB-CAN 的调试器,某宝几百到几十都有,上位机可以进行预设格式的CAN数据发送和CAN接受信号的分析等等,就像我们用串口助手学习串口一样的过程。至于单片机,则无非就是CAN初始化,中断设置,还有就是主函数发送 接受 转换处理等等 还要清楚CAN中断和一般通信中断的区别,并编写中断服务程序。
******************* 实践教学 ******************* 理工大学 计算机与通信学院 2011年春季学期 C程序设计 课程设计 题 目: 专业班级: 姓 名: 学 号: 指导教师: 成 绩:__________________ 摘 要 在车辆销售管理当中,人工统计的速度慢,并且容易出现差错。本车辆销售管理系统的自动化加速了统计工作,提高管理效率。本程序主要采用对输入的相关信息进行自动分析,然后按组分类将数据保存到数组,这样的结构化非常便于程序后续的统计工作。统计具体过程涉及到车辆进价售价及利润排序等问题,将于正文中详细介绍。本程序实现了所有设计要求。 关键词:文件;排序;统计;C语言 目 录 一、需求分析 1 二、总体设计 2 三、详细设计 3 3.1 详细设计思路 3 3.2 算法流程图 3 四、编码 7 五、测试 8 六、设计总结 12 参考文献 13 致谢 14 附录 15 一、需求分析 本程序将用到文件系统,list.txt文件内容作为数据源,其中单行内容代表一张纸条。程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。 二、总体设计 图1 车辆销售管理系统功能模块图 三、详细设计 3.1 详细设计思路 1.main()主函数 设置了程序的流程,结束程序。 2.select ( ) 选择函数 选择所想运行的各个函数. 3.functionscan ( ) 输入函数输入便条的数据. 4.function1 ( ) 文件的数据输入函数多次输入数据 5. function2 ( ) 统计函数每种汽车销售量以及销售额的统计 6. functionpaixu2 ( )总额排序函数按销售额对汽车进行排序 7. function4() 总额统计函数统计每种汽车的总额 8. function5() 统计报表函数统计商品总额 9. function6() 清空文件函数 清空文件数据 3.2 算法流程图 3.2.1保存函数Save()的算法流程图如图2所示。 图2 保存函数Save()的算法流程图 3.2.2输入函数input()的算法流程图如图3所示。 图3 输入函数的算法流程图 3.2.3 输出汽车信息 图4 输出汽车信息 四、编码 原始数据有汽车编码,车名,进价,售价,销售数量。年所以定义一个全局结构体数组scrip用于保存原始数据。然后定义全局变量n保存纸条数目,定义数组s用于保存分类后的信息。源代码见附录 五、测试 1输入新数据测试如图5所示 图5 输入新数据测试 2按车名查找数据测试如图6所示 图6按车名查找数据测试 3按编号查找数据测试如图7所示 图7 按编号查找数据测试 4按车辆名称删除数据测试如图8所示 图8车辆名称删除数据测试 5列出所有数据测试如图9所示 图9列出所有数据测试 6统计各产品的收益和总收益测试如图10所示 图10统计各产品的收益和总收益测试 7按车辆销售额的大小排序并输出排序后结果测试如图11所示 图11按车辆销售额的大小排序并输出排序后结果测试 六、设计总结 通过这次C程序设计,我掌握了模块化设计方法,能够深入的理解结构化程序设计思想,熟练运用结构化程序设计方法,提高了运用C语言进行程序设计的能力。 回顾起这次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子,可以学到很多的东西。同时不仅可以巩固了以前所学到的知识,而且学到了很多在书本上所没有学到过的知识,通过这次课程设计使我懂得了理论与实际相结合是很重要的。只有理论知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论。才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,通过同学的帮助,逐渐克服各种问题,并且从中学习到了很多的东西。通过这次编程。我发现了很多的不足。让我了解到自身的问题。让我不断的进步。 参考文献 1 C/C++程序设计,王连相等,中国科学技术出版社,2004 2 C语言程序设计,谭浩强,清华大学出版社,1999 3 C程序设计题解与上机指导,谭浩强,清华大学出版社,1999 4 C语言实用程序荟萃,西安电子科技大学出版社,1993 5 C语言函数手册,机械工业出版社,1999
目 录 摘要..........................................(03) 关键字........................................(03) 1 前言..........................................(04) 2 系统设计......................................(04) 2.1 电子密码锁的工作原理......................(04) 2.2 系统硬件组成..............................(04) 2.3 矩阵键盘扫面工作原理......................(05) 2.4 LED数码管动态显示原理.....................(05) 2.5 电子密码锁系统硬件设计..... ..............(06) 2.6 电子密码锁系统软件设计....... ............(07) 3 设计体会与结论................................(07) 4附录...........................................(08) 5参考文献.......................................(13) 摘要 电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁,特点如下: 1.保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。 2.密码可变。 用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。 3.误码输入保护。当输入密码多次错误时,报警系统自动启动。 4. 电子密码锁操作简单易行,一学即会。 关键字;单片机 LED数码管 矩阵键盘 密码锁 Abstract Electronic Code Lock is a password input through the control circuit, or chip, thus controlling the closed mechanical switch to complete the lock, closed the task of electronic products. It is of many types, have a simple circuit products, but also the higher cost chip-based products. Now the widely used electronic code lock is a chip at the core, achieved through programming. Performance and safety have greatly exceeded the mechanical lock, the following features: 1. Privacy is good, coding quantity is far greater than the spring lock. Random unlocking success rate is almost zero. 2. Password variable. Users can always change the password, to prevent password theft, but also avoids the lock because of staff turnover Er Shi and drawing down. 3. Error input protection. When you enter your password wrong several times, the alarm system started automatically. 4. E-lock operation is simple, a school that will. Keywords; MCU LED digital tube matrix keypad lock 1 前言 随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧