- 博客(26)
- 收藏
- 关注
原创 CANoe开发入门到精通读书笔记(5)——基于CANoe的自动化测试(下)
使用方法:声明一个dword类型变量gcyccheckID,调用第一个函数将其返回值赋值于gcyccheckID,开始观测指定报文,gcyccheckID再作为实参传递给后几个函数用于检测指定报文的属性。在.can文件中主函数的代码部分如下。检测未定义报文的测试用例。检测报文周期的测试用例。检测报文长度的测试用例。
2024-02-17 20:10:02
1315
原创 CANoe开发入门到精通读书笔记(3)——CAN仿真
总线仿真工程开发流程总线仿真工程贯穿于ECU开发的整个过程,涉及需求分析、软件开发、软件测试、环境测试、硬件验证、生产检验、失效分析、客户支持等职能部门。对于功能复杂的ECU,其对测试环境的要求也很复杂,往往更加依赖于仿真环境。
2024-02-15 19:03:34
666
原创 CANoe开发入门到精通读书笔记(2)——CAPL编程
CAPL函数的语法跟C语言很类似,但也包含一些C语言所不具备的功能大部分CAPL支持的数据类型都可以直接声明为函数参数, 例如,整型、浮点型、枚举、结构、定时器以及它们的引用。但有一些类型不能被直接声明,而需要加上*号(注意该符号并不是C语言中 指针的意思)。例 如 : signal * s 、 envvarInt * ev 、 sysvarFloat * sv 、 diagRequest * dr、diagResponse * dr、int matrix[][],以及。
2024-02-15 18:34:15
4775
1
原创 simulink串口通信
4.串口模块配置: 串口配置需要用到三给模块,Serial Configuration、Serial Receive、Serial Send。Serial Configuration用于配置串口参数,Serial Receive、Serial Send分别用于接收和发送串口数据。根据传输的数据可使用convert模块将数据装换为我们需要的类型,经过转换的数据会全部发送至单片机。4.1 serial configuration:串口配置模块用于配置串口参数用于数据的发送和接收。
2023-11-20 19:42:03
3759
3
原创 HAL库开发——Usart串口通信
USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里。RS485电平:两线压差+2~+6V表示1,-2~-6V表示0(差分信号)通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统。RS232电平:-3~-15V表示1,+3~+15V表示0。数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行。TTL电平:+3.3V或+5V表示1,0V表示0。
2023-11-20 14:59:28
1521
1
原创 CANoe基础
添加方式:在analysis——measurement setup界面中(分析界面)记录的数据可以通过offline离线总线发送到CANoe进行离线回放分析。信号流传输线的方块位置右击,insert trigger block。作用:用于记录并存储总线上的数据,储存文件格式后缀为.blf。以变量作为x轴:右击变量——use as X-Axis。作用:作为开关控制该条信号传输线路的开闭。2.logging模块。4.graphi界面。
2023-11-12 23:01:04
787
1
原创 CANoe仿真实例
5.将信号switch_status_signal拖入报文switch_status中,再将报文switch_status拖入到发送节点switch中;在控件properties——symbol中进行绑定变量,保证控件状态和变量状态一致,switch开则switch_sysvar=1,light绑定同理。长度设置为1bit(1字节=8bit,由于dlc=1字节,故此处最多8字节,用1bit存储0和1);右键节点——configuration,先为节点创建后缀为.can文件,文件名和节点设为一致。
2023-11-11 22:31:48
1434
1
转载 MBD的Simulink使用技巧——(1)
有的时候,我们不希望模块参数是一个数值常量,而是一个可以修改的变量。让模型参数是可调(Tunable)的,这样便会生成一个新的变量来保存模型中所有模块的参数。(Parameters)指的是模块的参数,例如:本文PI控制器模型中的PI增益模块,它们的参数分别实现Kp和Ki。实际中,生成嵌入式代码几乎不会使用Simulink模型库中的连续模型,往往需要通过最简单的离散模块来实现算法模型。.h”中会生成一个新的数据结构体,包含了所有模块的全部可调参数,用于存储模块参数的变量名为“”的模块,全部具有状态变量。
2023-08-17 17:21:41
879
1
原创 HAL库开发——TIM输入捕获
GPIO配置→TIM时基单元配置→输入捕获通道配置(滤波,极性,直连or交叉,预分频...) →从模式配置(从模式reset,触发源TIFP1) 启用功能,每次需要读取最新频率时,直接读取CCR寄存器,用fc/N即可得到频率。可配置为PWMI(即PWM输入模式)模式,同时测量频率和占空比。ARR设置为最大值;
2023-07-21 13:44:58
1436
1
原创 HAL——TIM编码器接口
计次单相脉冲的双边沿为二倍频,计次双相脉冲的双边沿为四倍频。1.单片机与编码器配合使用:编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的。脉冲个数→位置(检测到一相跳边沿的同时检测另一相电平状态判断旋转方向,如果正转CNT++,如果反转CNT--)编码器种类:机械式,光电式,磁场/霍尔式,最终效果均是将电机旋转的状态转化为单片机可以识别的脉冲信号。编码器接线:两根电源线(输入),两根正交相线(输出),一个固定位置输出脉冲线(0位校准)
2023-07-20 11:41:47
1166
1
原创 C语言学习笔记-1
变量是一个保存数据的地方,当我们需要在程序里保存数据时,比如上面的例子中要记录用户输入的价格,就需要一个变量来保存它。const是一个修饰符,加在int的前面,用来给这个变量加上一个const (不变的)的属性。C是一种有类型的语言,所有的变量在使用之前必须定义或声明,所有的变量必须具有确定的数据类型。数据类型表示在变量中可以存放什么样的数据,变量中只能存放指定类型的数据,程序运行过程中也不能改变变量的类型。算子 (operand)是指参与运算的值,这个值可能是常数,也可能是变量,还可是一个方法的返回值。
2023-07-10 11:58:15
80
1
原创 HAL库开发——TIM定时器中断与PWM输出
PWM模式:设置CNT大于还是小于CRR时为有效电平,具体如下,PWM模式1: 在向上计数时,当CNTCCRx时通道x为无效电平;计数模式:向上计数即为计数器从0加到ARR(自动重装载值),计数器溢出,然后计数器归为0,继续加循环,向下计数即为计数器从ARR减到0,计数器溢出。定时时间=(技术周期+1) / (输入时钟频率/分频系数+1)=(ARR+1)*(PCS+1)/Tclk。通道极性:即设置有效电平为高电平还是低电平,有效电平即为占空比中占的部分。
2023-07-06 17:29:02
2588
1
原创 HAL库开发——GPIO输入输出
开漏输出,P-MOS关闭,N-MOS导通,1为高阻态(相当于断开),0为低电平,只有低电平有驱动能力,可以作为通信协议的驱动方式,也可配合上拉模式输出电平。用在电平不匹配的场合,如需要输出5V 的高电平,就需要在外部一个上拉电阻,电源为 5V,GPIO 设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外输出 5V 电平。GPIO_Pin:GPIO引脚号,可以是单独的引脚号,例如 GPIO_PIN_0,也可以是多个引脚的按位或组合,例如 GPIO_PIN_0 | GPIO_PIN_1。某个引脚的电平状态。
2023-07-06 13:53:41
4109
1
原创 HAL库开发——外部中断
2.16个中断通道,相同数字的GPIO口公用一个中断通道,即PA0~PG0只能有一个配置为外部中断 。1.外部中断不需要程序去读取外部端口的电平状态,当开启外部中断后,对应的GPIO口(被配置为数字输入)上的电平按照预设的方式(上升沿,下降沿或高低电平)发生变化时就会产生中断信号。外部中断的初始化函数不在主程序中而是在GPIO的初始化函数中完成。3.设置NVIC,勾选EXTI0表示允许中断。
2023-07-06 11:03:43
3572
2
原创 HAL库开发——ADC模块
4.DMA循环模式:正常模式下DMA完成一次转运后即停止工作,循环模式下完成一次转换后会从第一个寄存器开始循环覆盖新的数值,与ADC的连续模式配合使用,实现数据的连续循环的转换和传递。HAL_ADC_Start_DMA( , , )三个参数分别为:①传递的功能②传递的数据所存放的寄存器③传递的数据长度,对应转换的通道数量。3.连续模式:不开启连续模式每次进行ADC转换前需要调用一次启动函数,开启连续模式则完成一次转换后会接着进行下一次转换。8.ADC采样校准:每次启动程序前校准一次即可。
2023-07-04 17:17:23
1774
原创 simulink embedded coder+stm32CubeMX代码集成
4. 关于调试,选择要观察的参数右击:add to watch,同时在菜单栏中找到view 选中Periodic Window Update实时更新数值,注局部变量会显示not in scope,可以通过降低优化等级解决。3.在ide中加入生成的代码文件(ert main.c为示例可不加),同时添加文件路径,按图所示位置点击“序号1”位置按钮,然后在“c/c++”栏的“include paths”栏增加响应缺少文件的路径即可。
2023-07-03 20:43:50
279
1
原创 洋桃(7)—RCC时钟与延时函数
SYSCLK系统时钟是除去独立时钟外单片机的根本时钟,其他外设时钟由此分配而来,为单片机的最大频率。RTC时钟与备份电源可以为系统提供实时走时,定时器功能。ADC时钟最大频率为14MHZ,为ADC提供时钟。独立时钟频率不由系统时钟提供,由时钟源直接提供。FLCK时钟为ARM内核运行提供时钟。PCLK时钟是为外设功能提供时钟。独立看门狗监督系统是否出错。不同总线挂载外设如图。
2023-07-03 16:28:49
90
1
转载 洋桃(3)—新建IDE工程
开发环境选择cubeIDE,生成代码后会直接导出为IDE内部代码。新建工程后根据选择的芯片型号弹出需要下载的固件库。cubeMX图形化配置过程。
2023-07-03 15:05:20
56
1
原创 CAN通信笔记
①决定数据帧发送的优先级,当同时有多个报文被发送时,总线会根据仲裁段的内容决定哪个数据包能被传输,已知总线上同时出现显性电平和隐性电平,总线的状态会被置为显性电平,CAN 正是利用这个特性进行仲裁,若两个节点同时竞争 CAN 总线的占有权,当它们发送报文时,若首先出现隐性电平,则会失去对总线的占有权,进入接收状态。SS段/同步段:若通讯节点检测到总线上信号的跳变沿被包含在 SS 段的范围之内,则表示节点与总线的时序是同步的,当节点与总线同步时,采样点采集到的总线电平才可被确定为该位的电平。
2023-06-27 18:44:43
1671
1
原创 在simulink中利用Matlab function模块求变量偏导数
如下面这个轮胎模型的MATLAB function,要利用该模型得到Fx和Fy对滑移率s的偏导数。运行该文件即可得到y关于u的偏导数表达式:dy_du=v*w;首先在另外一个m文件中利用diff函数求出偏导数的表达式。将表达式复制到MATLAB function中。将其带入到matlab function中即可。在另外的m文件中运行得到偏导数的表达式。现要求输出y关于u的偏导数值。
2023-05-01 17:36:52
3679
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人