发布时间 : 星期四 文章基于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