基于STM32的CAN总线的数据采集卡设计 联系客服

发布时间 : 星期四 文章基于STM32的CAN总线的数据采集卡设计更新完毕开始阅读

i = 0;

while((CAN_TransmitStatus(CAN1,Mailbox) != CAN_TxStatus_Ok) && (i < 0xff))//等待发送结束

i++;

if(i >= 0xff) return 1; return 0; }

/***********************************************************************************

功能说明:CAN2发送函数

************************************************************************************/

u8 Can2_SendData(u16 CanStdID, u8 *CanData) {

CanTxMsg TxMessage; u8 i;

u8 CanTx_check = 0; u8 Mailbox = 0;

TxMessage.StdId = CanStdID; TxMessage.ExtId = 0; TxMessage.IDE = CAN_ID_STD; TxMessage.RTR = CAN_RTR_DATA; TxMessage.DLC = 8;

for(i = 0;i < 7;i++)

CanTx_check += CanData[i];

31

CanTx_check = -CanTx_check+1; //校验和 CanData[7] = CanTx_check;

memcpy(TxMessage.Data, CanData, 8); //将CanData数组中的数据拷贝到TxMessage.Data中

Mailbox = CAN_Transmit(CAN2, &TxMessage); //范围值是邮箱号码,如果没有空邮箱返回CAN_NO_MB

i = 0;

while((CAN_TransmitStatus(CAN2,Mailbox) != CAN_TxStatus_Ok) && (i < 0xff)) //等待发送结束

i++; if(i >= 0xff) return 1; return 0; }

结论

32

这次暑期能力拓展训练,在罗璠老师的悉心指导之下,我完成了这篇报,罗老师热心的工作态度、严谨的治学态度,也使我受益匪浅,终生难忘告。,通过这次能力拓展训练,我掌握了很多STM32的知识,让我对我所学过的知识有所巩固和提高,并且让我对当今STM32的最新发展技术有所了解。在整个过程中,我学到了新知识,增长了见识。在今后的日子里,我仍然要不断地充实自己,争取在所学领域有所作为。

参考文献

33

[1] 康华光.电子技术基础模拟部分第四版[M].北京:高等教育出版社,1999.6. [2] 阎石.数字电子技术基础第四版[M].北京:高等教育出版社,1999.6.

[3]王福瑞等.单片微机测控系统设计大全[M].北京航空航天大学出版社,1998(331-337). [4]宁改娣,杨拴科.DSP控制器原理及应用[M].科学出版社,2002.

[5] 周立功等.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005.1. [6] 周立功等.ARM嵌入式系统实验教程[M].北京:北京航空航天大学出版社,2005.1. [7] 唐清善.Protel DXP高级实例教程[M].中国水利水电出版社,2004.4.

[8] 罗浩等.一种新的基于ARM的数据采集系统设计[J].信阳师范学院学报(自然科学版),2006.4.

[9] 秦伟等.基于ARM 处理器的数据采集系统的设计[J].自动化技术与应用.2006 年第10 期.

[10] 杜春雷.ARM体系结构与编程.清华大学出版社,2003.

[11] 李宁.ARM开发工具ReaIView MDK使用入门[M].北京航空航天大学出版社,2008. [12] 李宁.基于MDK的STM32处理器开发应用[M].北京航空航天大学出版社,2008.

[13]刘黎明等.单片机与嵌入式系统应用[J].英文刊名MICROCON TROLLER&EMBEDDED SYSTEM. 2002(7).

34