优质博文推荐阅读(单击下方链接,即可跳转):
在Measurement Setup中,创建Program Node;
接着导入下面的Demo:NM_Frame.can;(替换需要的CANID,以及数据段的字节值即可)
- /*@!Encoding:936*/
- includes
- {
-
- }
-
- variables
- {
- message 0x211 Message_211 = {dlc=8}; //定义要发送的报文
-
- msTimer Message_211_timer; // 报文发送周期
- msTimer Cycle_Start_timer; // 发送窗口:允许报文在该时段发送
- msTimer Cycle_End_timer; // 完成一次循环的时间
-
- byte Cycle_Start_timer_Flg = 0;
- }
-
- on start
- {
- setTimer(Message_211_timer,100); // 启动报文周期发送定时器
- setTimer(Cycle_Start_timer,10000); // 启动报文发送的窗口定时器
- setTimer(Cycle_End_timer,30000); // 启动发送的循环定时器
- }
-
- on timer Message_211_timer
- {
- Message_211.byte(0)=0x00;
- Message_211.byte(1)=0x01;
- Message_211.byte(2)=0x02;
- Message_211.byte(3)=0x03;
- Message_211.byte(4)=0x04;
- Message_211.byte(5)=0x05;
- Message_211.byte(6)=0x06;
- Message_211.byte(7)=0x07;
-
- output(Message_211); // 输出报文到CAN总线
-
- if(Cycle_Start_timer_Flg == 0)
- {
- setTimer(Message_211_timer,100); // 重置报文周期发送定时器
- }
- }
-
- on timer Cycle_Start_timer
- {
- if(Cycle_Start_timer_Flg == 0)
- {
- Cycle_Start_timer_Flg = 1;
- }
- }
-
- on timer Cycle_End_timer // 完成一个循环后,重置所有定时器
- {
- Cycle_Start_timer_Flg = 0;
-
- setTimer(Message_211_timer,100);
- setTimer(Cycle_Start_timer,10000);
- setTimer(Cycle_End_timer,30000);
- }
CANoe/CANalyzer配置完成后的效果如下图:
您会看到NM帧发送10秒,停20秒,如此循环往复。
获取更多“汽车电子资讯”和“工具链使用”,
请关注“汽车电子助手”,做您的好助手