文章目录

  • 2.8
  • 2.9
  • 2.10
  • 2.11
  • 2.14
  • 2.15
  • 2.16
  • 2.17
  • 2.18
  • 2.21
  • 2.22(SVN)
  • 2.23
  • 2.24
  • 2.25
  • 2.26
  • 2.28
  • 3.1
  • 3.2
  • 3.2(哈哈哈)
  • 3.3
  • 3.4
  • 3.5
  • 3.6
  • 3.7
  • 3.8
  • 3.9
  • 3.10
  • 3.11
  • 3.14
  • 3.15
  • 3.16
  • 3.17
  • 4.1

2.8

L1电感的作用原理?就是隔交通直(我一开始隔直通交了哈哈哈)
MPQ4420是降压模块
原理图中tp符号?是测试点,自己使用
TJA1027T用来进行收发

JTAG+SWD==J-link==keil中debug要设置jtag调试

王凯说,原理图中红色部分,不参与电路板,只是起到标注作用,易于观看

keil5-MDK版与Keil5-c51是两个安装包,其中想要兼容两者,都安装在一个文件路径即可
先安装好MDK之后,破解好之后,再安装keil5-c51版本,注意安装过程中(因为两个软件包安装在同一个文件下面了),提示你点文件覆盖还是跳过,此时一定要点skip,亲测点全部覆盖,失败了好几次,第一天上班因为这点安装好几次都失败

加括号是为了处理表达式参数(即宏的参数可能是个算法表达式)时不出错,因为宏替换就是文本替换。
比如以下情况:

#define COM(A,B) (A)*(B)
那么COM(6+5,3)它会换成这样: (6+5)*(3)

显然这是和COM宏的意图一致的,但是如是去掉了定义中括号,即写成这样:

#define COM(A,B) A*B
那么COM(6+5,3)它就会换成这样: 6+5*3

这样显然就和宏的意图不符合了。

只有处在jlink调试时才可以打断点

2.9

AC781单片机有68个IO口(boot也当做IO使用),16条外部中断线,对应于7个外部中断向量==7个外部中断函数,每个引脚都支持引脚复用功能

准备:①利用gpio子例程中1的定时器2中断1ms进入一次,来进行判定5s(这个5s例程使用的是普通延时函数)

汽车靠背原理图中BZX84-C39是稳压二极管

初次接触AC7811单片机,用定时器实现了控制两个电机正反转(正转10s,反转50s),完成了王凯让我实现的小功能,并且学习了开发板中GPIO的代码例程,并且初次接触j-flash,并用其下载程序

学习使用source insight软件,建立工程,add all也行,add tree也行,具体教程已经收藏在博客里面,file name可以不用写直接close即可

2.10

安装S32-RAM软件,并初步学习使用其软件,can学习(王凯发给我的can资料)
Migrate迁移
Can通讯,半双工,异步通信,无时钟信号,can控制器通过两根线上的电位差来判断总线电平,can通讯不对节点进行地址编码,只是对数据内容进行编码
汽车数据采集-TTL电平->(cpu+cpu内部集成的CAN控制器)->can收发器->差分信号can总线->差分信号->can收发器->TTL电平->can控制器->完成汽车功能==明白了吗?
Can物理层=环路模式(也就是闭环总线,两头要有匹配电阻,这种比较常用)+开环模式(开环总线)
Can通信没有时序信号,所以和串口通信一样,必须事先统一好发送和接收的的波特率
LAN=local area network=局域网

刘洋B站视频
Can通讯协议标准分为高速通讯标准和低速通讯标准(刚好这个低速和高速涵盖了一台汽车里面的所有通讯),can通讯只需要两根线
Can通讯以5种类型帧来进行通信,一帧=7个段组=帧起始,仲裁段,控制段,数据段,crc段,ack段,帧结束==一个标准数据帧最多可以发送108位
位速率=每秒发送的位数=一位由四段构成,每一位由若干个tq构成

bps(bits per second)是数据传输速率的常用单位,意思是比特率、比特/秒、位/秒、每秒传的位数。 比特(bit)是信息技术中的最小单位。 文件大小(例如文本或图像文件)通常以字节(Byte)为单位。 一字节对应八比特。 在数据传输中,数据通常是串行传输的,即一个比特接一个比特地传输。 数据速率的单位是比特每秒(bps),含义是每秒串行通过的位数。 Bps (Bytes per second), 即字节每秒,因为一字节对应八比特,所以1 Bps = 8bps。 比特率是指每秒传送的比特 (bit)数。 单位为 bps (Bit Per Second),比特率越高,传送数据速度越快。

今天给六个板子烧录昨天王凯让我写好的程序,初次使用了探针,使用j-flash工具烧录的

2.11

Can=串行通信协议=ISO(国际标准化组织)定义的一个协议标准
Lan=局域网=内网=私网
多个内网=多个子网之间通信涉及到,网关的使用
ID号决定优先级,无其它特殊意义,can通讯没有地址概念,因此理论上总线可挂接无数节点
Iso定义的这套标准=硬件控制(1物理层=线路连接,2数据链路层=数据帧,寄存器啥的)+软件控制(3网络层,4传输层,5会话层,6表示层,7应用层)
数据链路层=MAC层+LLC层=帧化-仲裁-应答-错误的检测和报告
Iso仅仅对硬件控制层进行了标准化,在物理层规范了高速(环路模式)和低速两种通信(开环模式),两种模式的驱动ic不同=can控制器里面的电平转换芯片不同

数据传输==一帧一帧数据传输==电影也是一帧图片传输形成了画面,这个帧分为五种帧==数据帧,遥控帧,错误
帧,过载帧,帧间隔
一帧=7个段组=帧起始,仲裁段,控制段,数据段,crc段,ack段,帧结束==一个标准数据帧最多可以发送108位
(只有数据段的位数是不固定的0-64位)

数据帧分为标准数据帧和扩展数据帧,扩展帧只是ID号位数变多了,其它差别不大,因此扩展数据帧最多发送位数>108
标准数据帧格式=sof+id+rtr+ide+r0+dlc+data+crc+crc界定符+ack+ack界定符+eof
扩展格式=不写了
其余四种帧的格式也不写了
标准数据帧格式=sof(帧起始,1位,总线显隐性由它决定,显性0代表开始)+id(仲裁段,11位,决定优先级,禁止id=1111111XXXX)+rtr(没说,1位,只能是显性)+ide(1位,没说)+r0(1位,保留位必须显性0)+dlc(数据长度码,4位,1111代表8个字节,刚好是64位)+data(0-64位)+crc(15位)+crc界定符(1位)+ack(1位)+ack界定符(1位)+eof(7位,必须全是隐性1111111)
仲裁的过程,也很简单,不用说了,具体看can入门pdf

小白在学习过程中有时会在程序中看到0u或是0ul等常量有后缀的情况,如果没接触到C语言常量后缀的话可能就有点疑惑~
其中的u为unsigned,l为long,f为float
C语言中常量的默情况:整形默认为有符号int;浮点型默认为double;如果整形常量大小超出int,默认自然就为long int;如果需要无符号整形常量的话就可以在常量后面加u或是U,如0u或是0U,同理可以在常量后面加ul或UL表示无符号长整形常量;而浮点型常量后缀只有f或F,l或L,没有u或U,因为浮点数一般都为有符号

安装can驱动,和can调试软件

2.14

Ecu=Electronic Control Unit=汽车的电子控制单元
学习CAN分析仪使用手册(CANalyst-Ⅱ)
Flash存储代码,arm存储数据(变量的值与地址,也包括寄存器地址与寄存器存储的值),比如F4中的4GRAM中分为八个块,每块512MB空间,比如某一块空间里面给存储器分配地址,这个叫做“映射”,寄存器中又细分小寄存器,在地址里面又分配地址,叫做“重映射”
靠,今天看了啥呀,今天没有收获,usb-can软件不会用,开发板也是坏的,我想调试都没有办法,发给我的budycan表格实在看不懂

认识人,实验室钥匙叫伍旭东,带我的叫王凯,入职一个月叫谢帅

2.15

首先要看懂原理图,根据小蚂蚁功能规范,自己写一套软件框架(实现基本功能)
IGN是电源检测线(检测是否通电)
10ms定时器中断
输入按键,输出驱动,can信号采集,电机控制-业务逻辑,保护策略(了解)
黑线是can_l线
不同工作封装成单个.c文件

不想看到keil中.c文件下面的.h文件,或者说多出来个.h文件,在魔术棒旁边的选项里面将Files中相应的.h文件删除即可

通常规则通道组中可以安排最多16个通道,而注入通道组可以安排最多4个通道。规则通道组的转换好比是程序的正常执行,而注入通道组的转换则好比是程序正常执行之外的一个中断处理程序。

按键9个输入口,封装函数
电机四个,4个输出口
电源和运放开关,2个输出口
电池电压采集,ADC输入1个
Can通信,2个口

GPIO_SetFunc();函数,第一个参数:PA-PE,第二个参数:7811单片机参考手册P236中有一个表格:0-3,0代表正常原理图管脚,123分别代表复用为相应的功能(看那个表格即可)
ADC_init()函数里面,tempAdcConfig数组用来配置ADC mode:mode1-8
tempAdcTrigSource数组用来配置触发方式,第一个成员是规则,第二个成员是注入,0是关闭默认内部触发,1是打开,比如10代表规则组外部触发
ADC中18个通道,一个温度一个电压,16个外部通道供我们用
DMA有12个通道,不同通道用于不用的外设,ADC专用DMA通道1

2.16

写写昨天的日志,建立工程时,默认是Target1,然后在RTE文件夹下面会出现这个名字,假如你修改为其它名字,则Target1不消失,会再次出现你修改名字的文件夹

还有就是,AC7811单片机的配置文件,在manage run里面ATC Drivers里面,自己添加即可,不让在文件夹下面你找不到,不像32都在文件夹里面

我是按照正点原子的代码风格来建文件夹的,包括头文件风格

技小新:外设是adc,外设基地址就是ADC地址,内存=存储基地址就是数组名,DMA初始化中必须加入一个数组名=该数组地址,用的是个二维数字,但是跟几维无关系,三维也行,二维中的第一个参数是滤波采集次数,第二个参数是通道号,因为DMA是由通道的(顺序规则转换),通道是1
正点原子:DMA中用的是一个自写的函数,数组用的是一维数组,外设基地址是串口地址,内存=存储基地址是数组名,通道是4
小蚂蚁:猜测:数组中存储的都是同一个值?这里我还是没有查到,根据众拳单片机的程序可以看到,数组存储的都是同一个值,接收到直接滤波即可

谢帅还是建议我,反复看数据手册,看时钟,不要走马观花,哎,太难了

eflash=片内flash=默认

2.17

spm=系统电源管理
nmi=不可屏蔽中断
待机模式是最省电的模式,处于这种状态下,只有rtc时钟中断和spm中断可以唤醒

firmware固件
记录一下问题:(下载电机控制板)
1,j-link驱动有,电脑也识别到串口COM3,打开keil中settings弹出蓝色j-link界面,只要点yes软件就卡死退出,点no没事(翻译是,read protected device detected,读保护,点yes就是尝试擦除程序,但是只要点yes软件就卡死退出)
2,点no没事之后,会进入settings里面,但是JTAG Device Chain识别不到(IDCODE区域是空白),但是左边的jlink型号和设备号可以识别到
3,然后进入jlink软件,发现可以连接成功,但是不可以production programming(按钮是灰色)
4,CSDN中关于JTAG Device Chain识别不到有很多方式,只有一种方式,我尝试成功,我点击进入jlink软件,点击芯片擦除,此时是成功的,于是production programming仍然是灰色,但是此时我尝试点击read back之后,发现production programming变黑色了(也许跟这个没有关系),此时我再次重新下载程序成功,程序正常运行,换个板子也可以如此下载程序,但是此时keil中JTAG Device Chain仍然识别不到

2.18

凯哥来测试昨天的04板子为啥电机不转的原因,应该就是我的工程建立有问题,有时间我重新建立一个工程来测试一下。

重建工程也失败了,最后解决了这个问题是因为,多加了两路引脚施加高电平。真是老泪纵横啊,困惑两天了。

2.21

Svn安装使用教程(最新版我电脑安装失败,找了网上几种方法无果),最后安装的版本是王凯发给我的低一点的版本

Beyond Compare安装使用教程

C:\Users\Administrator\Desktop\ Win10系统中C盘的Users==用户,Administrator==你自己的电脑用户名
==我的叫14733,Desktop==桌面,这三个英文只是代称,实际中都是别名,比如我的就是c\用户\14733\桌面,
appdata这个文件夹和桌面在同一目录下,默认是隐藏的,查看中选上“隐藏的项目”可查看

2.22(SVN)

Uds协议
Svn使用教程
Simulink模型开发
低功耗产品

2.23

Svn安装
Notepad++安装
Beyond Compare4安装
Matlab 2016a安装
SpcStudio安装
IAR for RAM安装

2.24

了解LIN通信
看小牛规范
看按键测试板
看hwa输入输出程序
看app输入输出程序
svn中branches新建WFF分支,分支中新建source insight4.0工程
看小牛PCB工程

汽车LIN总线,配合CAN总线使用,它速率要慢,mcu通过串口引出一条线,通过lin驱动芯片,这条线上挂载多个从机,mcu作为主机。实现汽车中的分布式电子控制,为CAN提供辅助功能,和can一样,不需要改变LIN 从节点的硬件和软件就可以在网络上增加节点,通常一个LIN 网络上节点数目小于12 个,LIN总线的网络节点数不能超过16,否则,节点增加将会减少网络阻抗,导致环境条件变差。每增加一个节点,就会降低3%的阻抗。
汽车车身网络,通信速率越低抗干扰能力越强。在一些比如车身电子配件的地方(如车窗、后视镜、大灯、车锁等),我们不需要报文像CAN总线上传输的那样“高速”!各大厂商一拍脑门就研究了这个LIN总线!

LIN总线采用的是单线传输形式,应用了单主机多从机的概念,总线电平一般为12V,传输速率最高限制为20kbps。由于物理层的限制,一个LIN网络最多可以连接16个节点。

MMI(Multi Media Interface)系统是“奥迪多媒体交互系统”的英文缩写

2.25

看小牛代码
看matlab模型

小cpu是s9s12g64飞思卡尔单片机,大cpu是ST公司的spc560单片机
micro power中vcc通过0电阻分为hv,bv,adc给大cpu供电
slave power中V5与v4并联直接分为s-VBAT_D,然后vbat_switch和vbat-wake两个按键控制它分给VBAT_SW_S(开关供电),这个应该是用于低功耗,关掉开关省电,s-VBAT_D再降成s-vcc给can芯片供电和lin芯片供电
slave cpu中,s-vcc给小cpu供电
connector中是所有信号输入输出口,j1-j5
lf antenna中,v5给天线芯片供电
slave output中,PDU(Power Distribution Unit,电源分配单元),ESCL全称电子转向柱锁(Electronic Steering Column Lock)是车辆防盗系统的一部分,用于无钥匙进入无钥匙启动系统中锁止和解锁方向盘
slave input中都是端口,con来自connector,in直接接到小cpu口
mux中都是vcc供电,M74HC4851是具有注入电流保护的单路8通道模拟复用器/解复用器,一个芯片带一个mux-1-an,mux-a-an直接连到大cpu,一共12个mux-1—mux-12
flash空的
win-ap不知道
relay3是车窗电机控制,vbat-d供芯片,v-win-l供电机,控制端是小cpu
relay2是后视镜电机芯片,vbat-d供芯片,v-lock供电机,v-wiper供电机,控制端大cpu
relay1是中控锁电机,vbat-d供芯片,v-lock供电机,控制端是大cpu
bjt3是,led驱动芯片,是三色灯,vbat-d供电芯片,大cpu控制
bjt2与1都是三色灯,控制端直连大cpu
bjt1是灯,大cpu控制
lsd2是继电器驱动,vbat-d和vcc供电芯片,控制端是大cpu(喇叭,雨刮,加油口盖等)
lsd1是灯,大cpu控制
hsd1234,好多芯片,vcc和v1供电,好多灯,也是彩灯,芯片之间spi通信,控制端大cpu
ic-reset没看懂,反正是大cpu控制
bus没看懂,和上面ic-reset结合使用,vcc和vbat-d供电
power中,v1234并联构成了vbat-d,vbat-d和vcc给can驱动芯片uja1078供电,剩下还有三个switch开关,应该是用于睡眠或者低功耗,vbat-wu和vbat-sw控制是所有的信号输入开关,即打开它,信号输入才有效
input1-8都是输入信号,左边con是connect中的输入口,右边in都是连到mux中的M74HC4851芯片,然后经芯片之后直连大cpu

2.26

stateflow线上培训
建立一个模型,输入电压小于9v或者大于16v输出电压故障状态
状态机,两种状态,电压正常和故障
chart中ctrl+h快捷键
chart中tab快捷键,自动补完
[]在状态机中是条件判断

优化1:输入0-255V修改为0.0-25.5v(增大颗粒度)
优化2:考虑到汽车电子中电压状态不稳定,90与160在条件判断中,error改为85/165,idle中改为95/155,
优化3:大于160区间为高压故障,小于85区间为低压故障(变成了两种故障)
优化4:软件消抖=延时消抖
优化5:状态机的转换中,两种方案中,希望第一种方案,右边的如果状态数量过多会引起复杂(右边的输出放在了跳转条件里)

复习:
stateflow
实际电压精度
{}输出
[]条件判断

王凯uds诊断线上培训
否定响应码==相当于一种信息提示,用于查询,告诉你否定的原因

2.28

branches分支中建立WFF分支,source insight4不可以跨盘符建立文件联系,在WFF分支里面将trunk中的所有文件(也就是NV工程)
复制放在WFF里面,再在source insight4里面建立NV工程,NV工程中源工程文件就是WFF里面的复制的trunk工程,NV工程目录放在WFF
目录下面,不可以再进一步放入SI中,因为SI会跟随WFF上传到公司svn中(何志维说的,暂时没考证)20230131注:确实是一块被上传了

上午:报警灯有几种触发方式,大致上有什么区别,有什么联系?有些逻辑代码中看不到(在模型里面),去何志维那边看实际现象验证
1,gear齿轮,装置

mux==multiplexer==多路复用器,理解为那几个芯片即可,readMuxs是芯片引脚通道读取输入函数
HWA==hardware==计算机硬件,理解为cpu即可,HWA_GetInput是cpu引脚读取输入函数

注意!!!,我最初在c_s_DIN_CONFIG里面通过mux-2输入通道ch4,在模型中查询danger或者alarm是不对的
应该是通过
#define INPUTS_AN_DANGER_ALARM_IN {\ 这里结构体第一个数组是8个成员,这里只是六个成员的数组,不过无所谓,不用管
SI_DANGER_ALARM_IN,\这里就是一个danger输入,定义了六种状态,这里只给出了一个状态SI_DANGER_ALARM_IN
NO_INPUT,\比如一个按键输入,导致这个按键输入有几种触发条件就可以加在这里面
NO_INPUT,
NO_INPUT,
NO_INPUT,
NO_INPUT,
}中的SI_DANGER_ALARM_IN去搜,在source insight工程中搜索SI_DANGER_ALARM_IN即可
source insight中搜到VbINP_CAN_Hazard_flg = HWA_GetInput(SI_DANGER_ALARM_IN);
VbINP_CAN_Hazard_flg是模型变量,HWA_GetInput(SI_DANGER_ALARM_IN)是我们的代码接口
在模型中搜索VbINP_CAN_Hazard_flg即可

j6-19报警灯开关输入
j4-15连接的喇叭
危险-传感器反馈信号(或者单片机自己gpio产生的信号)-(处理信号)==相当于报警灯开关打开了-低电平或者高电平通过MUX_2给大cpu引脚-一个芯片让喇叭响(单片机哪个引脚控制这个芯片暂时没看懂)
(!!!我这里搞错了,危险信号输入,不一定就是喇叭响,可能是别的事情,但是喇叭开关j5-9输入,就一定会喇叭响了,应该是这样)
原理图中mux_2输入通道x4是temper-in,matlab模型中mux-ch4是danger-alarm

hwa_inputs_cfg.h文件配置
typedef struct _DIN_CONFIG_STRUCT
{
UINT8 u8_inputIndex[8];输入枚举
UINT8 u8_lowActive[8];
UINT8 u8_DINType;用来选择mcu或者mux
UINT8 u8_portName;A-J引脚号,也就是cpu的A-J
UINT8 u8_runMask;如果选择mux,这里就是mux的输入通道x0-x7引脚
UINT8 u8_sleepMask;
UINT8 u8_regInfo;
} DIN_CONFIG_STRUCT;
const DIN_CONFIG_STRUCT c_s_DIN_CONFIG[NUM_OF_DIN]
DIN表示的应该是数字输入
static void readDigitalInputs( void );读取mcu或者mux引脚输入,这个函数包含了c_s_DIN_CONFIG
static void readAnalogInputs( void )也包含了这个函数包含了c_s_DIN_CONFIG

typedef struct _AIN_CONFIG_STRUCT
{
UINT8 u8_inputIndex[6];
UINT8 u8_AINInputLevel[6];
UINT8 u8_AINType;mcu或者mux
UINT8 u8_AINPort;
UINT8 u8_AINCh;
UINT8 u8_runMask;
UINT8 u8_sleepMask;
} AIN_CONFIG_STRUCT;
const AIN_CONFIG_STRUCT c_s_AIN_CONFIG[NUM_OF_AIN]
AIN表示的是模拟输入

typedef struct _MUX_CONFIG_STRUCT
{
UINT8 u8_muxType;
UINT8 u8_portName;//not useful if selected as AD MUX,mux的输出连接cpu的管脚,只用到了B和D
UINT8 u8_index;//if selected as AD MUX, this means AD channel,mux的输入端号1-11,注意复用输入通道只是其中的x0-x7引脚
UINT8 u8_dataBufIdx;1-12这个是12个mux芯片
} MUX_CONFIG_STRUCT;
const MUX_CONFIG_STRUCT c_s_MUX_CONFIG[NUM_OF_MUX]
static void readMuxs( void )这个函数用到了c_s_MUX_CONFIG

typedef struct _MUX_CTRL_STRUCT
{
UINT8 u8_portName_A;
UINT8 u8_index_A;
UINT8 u8_portName_B;
UINT8 u8_index_B;
UINT8 u8_portName_C;
UINT8 u8_index_C;
UINT8 u8_delayTimeUs;
} MUX_CTRL_STRUCT;mux是芯片,芯片地址控制端三个引脚就是ABC,上面三个定义的就是

AIN_ENUM是个枚举,大概六十个成员,全部是cpu引脚输入,UINT8 HWA_GetAnalogMcuData( AIN_ENUM u8_cmd );这个函数调用了它
AN_DIAG_ENUM也是枚举,大概三十个成员,UINT8 HWA_GetAnalogDiagData( AN_DIAG_ENUM u8_cmd );调用了它
AN_MUX_ENUM就是mux输出端,一个芯片就是一个mux输出,共1-12,cpu接收它

INPUTS_ENUM是个枚举,大概七十个成员,放在了InputReadVoltageCfg_S结构体中,c_inputReadVoltageCfg只用到了七十个成员中的八个,SI什么意思?应该是signal,数字输入吗?
typedef struct
{
INPUTS_ENUM input;
BOOL b_low_active;
BOOL b_high_active;
}InputReadVoltageCfg_S;
extern const InputReadVoltageCfg_S c_inputReadVoltageCfg[];
UINT16 HWA_GetWiperIntervalTime( void ) /* the uint is 10ms /和UINT16 HWA_GetWiperIntervalTime( void ) / the uint is 10ms */调用了c_inputReadVoltageCfg

代码函数接口到模型输入==也就是按键输入函数赋给模型中输入flag
模型中输出flag到代码函数输出函数==也就是直接到cpu口
总结模型就是起到中央枢纽的作用

APP_Model_ltf.c文件中包含了模型输入与模型输出函数接口

3.1

peripheral外围的;次要的

hwa_inputs.h文件配置
/* Function prototypes */
void HWA_InitInputs(void);这个函数主要是初始化了大概70个信号输入的结构体封装
typedef struct
{UINT16  u16_ioctrlCounter; UINT8   u8_debounceTime;UINT8   u8_counter;UINT8  level;UINT8  debouncedState;  /* logic level => '1' if input is active,no matter low-active or high-active */UINT8  debouncing;UINT8  lowVoltage;  /* '1' read input when low voltage state */UINT8  highVoltage;  /* '1' read input when high voltage state */
} INPUT_STATUS_STRUCT;就是这个结构体,每个输入信号的一些状态保存在这个结构体中
void HWA_OutputInit(void)主要是初始化了输出结构体
/* MCU IO */
typedef struct _OutputStatus
{UINT16  u16_IOCtrlCounter;UINT8  u8_onOff;UINT8  u8_overCurrentStatus;
} OutputStatus_STRUCT;三个成员void drv_a2d_v_init(void)是ADC函数/*
void TimerHandler(void)
{b_task_1ms_flag = TRUE;gl_rtctimer_U8++;gl_rtctimer_lin_U8++;u32_random_seed++;tasksCycle1ms();
}
void RtcTimerHandler(void)
{gl_rtctimer_U8+=10;gl_rtctimer_lin_U8+=10;
}
*/
void scheduler( void )
{ENABLE_INTERRUPTS();ENABLE_WATCHDOG(WATCH_DOG_TIME_OUT);WATCH_DOG_TIME_OUT是1000ms,也就是1s触发一次独立看门狗,也就是1s程序重启一次(如果不喂狗的话)for(;;)  /* loop here forever */{if( gl_rtctimer_U8 >= 10 )定时器中断和rtc中断里面都有gl_rtctimer_U8,下面有个10ms任务,估计就是定时器里面是1ms进一次{gl_rtctimer_U8 = gl_rtctimer_U8 - 10;gl_rtctimer_test_U8 = gl_rtctimer_U8;RESET_WATCHDOG();看来是10ms喂狗一次,假如1s还没有喂狗,则就程序自动重启一次tasksCycle10ms();       /* call 10ms task */if(gl_rtctimer_U8 - gl_rtctimer_test_U8 > gl_rtctimer_monitor_U8){gl_rtctimer_monitor_U8 = gl_rtctimer_U8 - gl_rtctimer_test_U8;}}if(b_task_1ms_flag)这个标志是定时器中断里面,进入一次变为true,然后在这里又瞬间变为false,也就说这个标志每隔1ms就会变为true一次{//也就是说啊,这个if判断是1ms进入一次b_task_1ms_flag = FALSE;limpHomeCycle1ms();hwa_e2Handler1ms();采集电压中断App_master_v_handler1ms();//         A5781Fun_Handler1ms();App_Rfr_vTask1ms();App_Tpms_Lse_ABS_Updata_1ms();}Sys_SleepModeHandler();}
}

安装XYplorer软件
BDM==Body Control Module,车身控制模块
安装CareUEyes软件
安装geek软件(卸载软件,可以查询并删除软件对应的注册表信息)
安装win64环境下的ocx控件
看埃泰克UDS上位机使用手册
config.ini文件是uds上位机主界面和ECU软件配置工具所使用的配置文件
message.ini文件是CAN信号监视工具所使用的配置文件
simulation.ini文件是CAN信号模拟工具所使用的配置文件
can好多那个表格都是在svn中NV中的document文件夹中的can文件夹中,包含can报文,can代码生成
document文件夹中的LIN文件夹,包含了小牛LIN文件

CAN_RX_MSG_S
Can0Msg362_Rx = {
TRUE,
0x362,
8,
CAN_NORMAL,
CAN_CYCLE,
CAN_PERIOD_200MS,
10CAN_PERIOD_200MS,
10
CAN_PERIOD_200MS,
POWER_30,根据电源模式 电池电或者 点火电配置网络模式
FALSE,
TRUE,
FALSE,
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
};

T-BOX==无线网关,通过4G远程无线通信,是车联网的关键零部件,车载T-BOX主要用于和后台系统/手机APP通信

3.2

regsvr32 c:\windows\system32\comdlg32.ocx
regsvr32 c:\windows\SysWOW64\comdlg32.ocx
regsvr32 c:\windows\SysWOW64\TABCTL32.OCX
regsvr32 c:\windows\SysWOW64\MSCOMCTL.OCX

windows中以$开头的文件夹是可以删除的,这是安装系统升级补丁生成的目录,用来删除补丁的
根据csdn中提示,我是直接在SysWOW64文件夹里面,右键管理员运行的cmd.exe打开的黑色窗口
如果ctrl+R打开的cmd窗口则是注册失败

3.2(哈哈哈)

刚刚没笑死我,旁边的实习生好像是吧,研发部一个主管问他有没有问题,说有问题不可怕,问题越多也不可怕,怕的是没有问题,然后那个实习生说就是没有问题,因为每一个都是问题,这还没啥,直到他说出(连有没有问题都是问题)这句话,不好意思我直接笑出了声 20230131注:不好意思,再次看到还是,不厚道地笑出了猪叫声

红色代表的是已经定义,下面黑色的是代表注释掉了
CCU==中央计算机管理

红色代表的是已经定义,下面黑色的是代表注释掉了

3.3

VGA,模拟信号,视频信号,显示模糊
DVI,数字信号,视频信号,显示高清
hdmi,数字信号,音频信号,视频信号,显示高清

BDM_NIU_NV11_SPC560B_SW

记录一下今天的问题,很神奇:
1,SVN中更新trunk分支出现黑色感叹号,表示冲突(很神奇,我根本没有动过它,初步猜测是上午打开SPC软件,乱建乱删工程时导致的文件修改)
上午使用SPC软件新建工程,中间乱折腾了一会,最后import我WFF文件夹,发现没反应,未果,中午问姜敏,经他人指导,是工程已经存在了,只不过
窗口view没打开,我以为没有建好,其实已经建好了,你在建好的之上肯定无法再新建,然后姜敏让我试试直接import进trunk文件夹,不过也没成功,不知道是不是这一步导致的,应该不是
2,

>>>>>>> .r634<<<<<<< .mineif((c_u8_rd(CAN0_Rx_525_MMI7_PsgMassgIntenReq_signal_u8_Handle  ) < 6) && (new_canMsg525_flag)){lin2_u8_wr(NV11_BDM_LIN2_RX_PSMM_Rsp_PsgMassgIntenSt_l_signal_u8_Handle,  c_u8_rd(CAN0_Rx_525_MMI7_PsgMassgIntenReq_signal_u8_Handle  )); }else{lin2_u8_wr(NV11_BDM_LIN2_RX_PSMM_Rsp_PsgMassgIntenSt_l_signal_u8_Handle, 7u);}
||||||| .r631
=======
>>>>>>> .r634
我直接复制trunk文件夹里面到WFF里面,然后重新打开source insight出现上述乱码,很神奇,然后用SPC打开,编译代码也出现error,很神奇
下午,何志维来到之后,没看懂怎么做的,更新trunk时出现黑色感叹号,然后它进去删了一个文件夹(忘记是不是了),然后重新更新,提交就好了
3,svn中文件夹出现黑色感叹号代表冲突,更新解决不了问题,只有我提交才会(但是要保证不做任何修改,之后提交之后显示绿色感叹号)
4,我现在那个问题,仍然存在,就是为什么我直接将trunk的文件复制到WFF里面,再SPC里打开WFF,竟然报错?而且与何志维给我弄好的工程文件比,好多地方都有差别
5,!!!想起来一点,spc中我关不掉工程,就delete时点击了删除关联的文件,因此把我WFF文件夹及其内容也删除了,delete时不能点击删除关联文件时,WFF文件一切都有
此时可以重新建立spc工程
6,我知道为什么我的WFF直接在spc里面编译有问题了,因为还没有合并,我的只是NV工程中的一部分
/今天学习的两点①spc软件delete工程时不能点击删除关联文件②我的WFF直接在spc里面编译有问题,因为我的只是NV工程中的一部分③就是上面的3
svn中检出和导出,我使用的是导出

beyond compare4中经过B站教程的设置,解决了之前的问题(两文件夹中文件相同也报错,猜测是设置的原因)

也就是说MMI发送请求,怎么发我们不需要管,这个信号直接调用即可,然后bdm发送需要我们自己写了
1-mmi发,bdm收-0x528信号-can通信
2-bdm发,dsm和psmm收-0x10-lin通信
我们目前要做的是1中的mmi发的信号,直接调用flag即可,和2中的bdm发(需要写函数)

3.4

展车模式下,拨前雨刮低速开关,提示前雨刮不可用,此时再拨前洗涤开关,提示前洗涤不可用,
关闭前洗涤开关,仍然提示前洗涤不可用,将前雨刮低速开关也关闭,提示信号回到0

展车模式0x2C5,can信号,mmi发,bdm接
前雨刮请求,can信号,0x515,mmi发,bdm接
前洗涤请求,can信号,0x515,mmi发,bdm接

分析:mmi发送展车模式信号下,拨前雨刮开关时,bdm没有接收到0x515信号 && mmi没有发送请求信号
&& bdm接收到0x515信号时,没有发出去反馈信号

展车模式报警0x3DA,can信号,bdm发,mmi接
安装UDE软件
注意!!!安装UDE软件时,埃泰克那边给的破解文档中licence过期,问那边的同事告诉我的,过期就会导致软件破解不成功,然后烧录程序hex文件时,超过512kb就会烧录失败,折腾了半个小时,无奈问人才告诉我的
烧录程序时,经何志维说,假如下载我的那个显示红色的hex文件时,下载进去之后,把jtag线断开,只留can线,此时重新上电,程序开始正常运行

3.5

功能规范里面是说
过去:mmi/tbox-can-中央-lin-bdm,比如mmi上点击一个按摩按钮或者tbox发送一个按摩信息,发给bdm
回来:bdm-lin-中央-can-mmi/tbox,比如开始按摩了,返回一个状态告诉mmi正在按摩或者按摩失败

①0x525,can信号,主驾按摩模式请求(只是这帧信号中一个请求,比如还有副驾请求),mmi发,bdm收,这个请求有8种请求(比如按摩模式有不同挡位,当然一次只能发出一种请求),can的excel表格中查询这帧信号中的这个主驾请求名称为MMI7_DrvMassgModeReq,在这个表格里面还可以看到,psm和dsm收(先不管)
②lin表格中,SMM_Cmd_DrvMassgProgReq是主驾按摩模式命令,bdm发,dsm收

看代码:
if((c_u8_rd(CAN0_Rx_525_MMI7_DrvMassgModeReq_signal_u8_Handle ) < 6) && new_canMsg525_flag)
{
lin2_u8_wr(NV11_BDM_LIN2_TX_SMM_Cmd_DrvMassgProgReq_l_signal_u8_Handle, c_u8_rd(CAN0_Rx_525_MMI7_DrvMassgModeReq_signal_u8_Handle ));
}
else
{
lin2_u8_wr(NV11_BDM_LIN2_TX_SMM_Cmd_DrvMassgIntenReq_l_signal_u8_Handle, 7u);
}
这个代码在lin2Appl.c文件里,大函数是lin2_hook_vUpdateSignals函数里面,new_canMsg525_flag在app_can.c文件里,大函数是app_canEvent_cnt,这个函数是何志维自己添加在10ms任务里的,也就是10ms就会检测一次,后来他又删了,加在了app_can_itf.c文件的app_canItfRecMsg函数里,app_canItfRecMsg也放在了10ms任务里面,< 6表明是0-5请求(6何7请求属于无效,不判断),c_u8_rd是读取can信号函数,lin2_u8_wr表明是回来中的bdm通过lin发送出去,7u是属于无效==返回一个错误值告诉你不正确,
c_u8_rd(CAN0_Rx_525_MMI7_DrvMassgModeReq_signal_u8_Handle )返回0-7这8个数值,6和7属于无效
!!!上面代码写的应该是,中央接收525的can信号,通过lin发送给bdm(中央就是cpu)
!!!mmi先通过can发给cpu请求,cpu再通过lin发给bdm命令,cpu也可以理解为那块大板子

③0x396,can信号,主驾按摩模式状态(只是这帧信号中一种状态,比如还有按摩强度状态),bdm发,mmi收,这个状态也是8种状态(比如模式1,模式2),can的excel表格中查询得知信号名称为BDM3_DrvMassgModeSts
④lin表格中,DSMM_Rsp_DrvMassgProgSt是主驾按摩状态

看代码:
c_u8_wr(CAN0_Tx_396_BDM3_DrvMassgModeSts_signal_u8_Handle,lin2_u8_rd(NV11_BDM_LIN2_RX_DSMM_Rsp_DrvMassgProgSt_l_signal_u8_Handle));
这个代码,在app_can_Itf.c文件里,大函数是app_canItfUpdataTxMsgs396(),lin2_u8_rd(NV11_BDM_LIN2_RX_DSMM_Rsp_DrvMassgProgSt_l_signal_u8_Handle返回0-7这8个数值,6和7属于无效

!!!bdm通过lin发给中央,中央再发送lin读取的信号,通过can发出去发给mmi

总结:mmi是mmi
bdm是bdm
cpu或者中央或者那块大板子是大板子,分别是三个独立个体
无论是mmi发给bdm,还是bdm反馈给mmi,mmi怎么发信号我们cpu不管,直接can读取它来的信号即可!bdm怎么反馈信号我们也不管,直接lin读取它来的信号即可。

我的工作要做的就是,红色方框部分。

3.6

新的理解:中央可以理解为大板子上面的cpu,大板子可以理解为BDM
PDU=power distribution unit=电源分配单元
主驾门:下是关
座椅传感器:下是ride
IGN1/3:上是active
制动开关:上是on
好了,现在已经摸清上下电流程了

ON:开锁,开门,坐人,关制动,开IGN(实际这个是自动打开)
OFF:下人,闭门,开制动,关IGN(实际这个是自动关闭),上锁
注:上电时只有开IGN时,转向柱锁才打开(有声音),下电时只有关IGN,转向柱锁才关闭
实测下电上锁时,打开IGN,转向柱锁仍然打开,上电解锁时,此时开门会打开柱锁,而开IGN却没有反应
(不深究这里了,好像上电也会有反应)
进入展车模式要挂上P档

3.7

监视某个变量的值,使用UDE软件即可,不用debug,需要在uds上位机中load打开etf文件,hex文件不可以调试,然后点start program F5即可,在watch view1中填写变量名称(需要f11刷新)
此时需要用到UDE线(不是can线),也可以直接在uds上位机中监视各返回状态,此时需要使用CAN线,监视是不需要拔掉UDE线再重新上电

3.8

遥控钥匙,蓝牙钥匙,tbox
顶灯
电池节能
polling解锁

3.9

static char i = 0;
if(j != i)
{
i = j;
if(j)
{
func(flag);
}
}
看到一块很有意思的代码,正点原子32里面key按键驱动那一块好像和这原理一样(以上代码是我简化后的)
1,i是static值,初始值为0
2,假如一个有效信号j=1进来,此时第一次进入第一个if函数,然后i变为了1,此时执行第二个if中的func函数
3,此时假如j仍为有效信号(比如信号一直在发),可是第二次无法进入第一个if函数(因为i变为了1)
4,假如j变为了无效信号0(比如不发了),此时j=0进来,此时第二次进入第一个if函数,i又变为了0,此时无法执行第二个if中的func函数(因为j变为了0)
5,循环
这块代码还是很妙的,我印象当中“正点原子”的32按键代码也是这么写的

使用LIN信号测试软件19200给测试板发信号(需要lin线,lin2,接12v电源)(软件何志维发给我了)
在matlab中打开.slx文件,并更新matlab模型(build model),以及使用compare软件合并软件,以及测试修改的模型是否正确,WFF里面source中的app中的app_models文件夹和NV中branches中的rtw文件夹
了解“mmi发can信号点亮灯”这个动作中,Vin模型输入flag和Vout模型输出flag的区别和各自起到的作用
了解“上位机lin软件发送lin信号点亮灯”这个动作中,Vin模型输入flag的作用,以及了解为什么没有模型输出flag的原因
在WFF文件build文件夹中使用HexMerge.exe生成一个.s和.hex文件,将.s文件发给何志维

3.10

这张图好模糊,使用左刷新,右编译仍然有问题,显示的error不是代码问题,最后是重新建svn,重新导入trunk成功的,WFF有问题

这个问题,何志维也没有解决,使用文件里的清理还是svn的清理都不行,最后是删除所有svn,重新从svn客户端检出的程序,才可以的

c_bool_wr(CAN0_Tx_392_BCM1_LowBeamStatus_signal_bool_Handle,VbOUT_LIT_LowBeam_flg);
HWA_SetOutput(SO_L_LOW_BEAM_OUT , VbOUT_LIT_LeftLowbeam_flg );//VbOUT_LIT_LowBeam_flg

if(!VbOUT_LIT_LeftLowbeam_flg)
{
b_can_LowBeam_Enable = FALSE;
}

if( c_u8_rd(CAN0_Rx_518_MMI5_LowBeamReq_signal_u8_Handle) < 0x02 )
{
b_can_LowBeam_Enable = c_u8_rd(CAN0_Rx_518_MMI5_LowBeamReq_signal_u8_Handle)==0x01;
}

VbINP_CAN_LowBeam_flg = b_can_LowBeam_Enable;

VbOUT_LIT_LeftLowbeam_flg是模型输出(这个就是lowBean,Left是写错了没改)
VbINP_CAN_LowBeam_flg是模型输入
VbOUT_LIT_LowBeam_flg这个没看懂,LIT啥意思?

3.11

就是纯看,也没改啥实际问题
何志维在我电脑上,生成了一个.s19文件,发在了钉钉群里
合了同事那边修改的代码(修改的T-BOX蓝牙认证信息),蓝牙指令有关,并将版本号改为最新日期,上传svn,在WFF分支里面上传的,靠,但是我在svn中备注信息是合PDU,写错了

今天看蓝牙钥匙功能
一个同事操作,将svn设置中比较文本设为外部软件compare beyond4软件
何志维操作一下,原来可以右键点击“红色逆时针箭头”进行比较,而不需要打开compare beyond4软件一步步打开文件夹
!!!今天何志维提醒了我一件事情,就是今天用source sight软件保存代码时,出现了两处位置,如果不是指出来,可能代码又报错了
可能又是重启软件,重建工程,一番折腾,还被骂,找了一下,原来是自己键盘误触吧,多了个回车,可能前两天出问题也有这个可能
所以,还是要很仔细
build文件夹中,.exe文件是为了生成.s19文件,当然它也可以生成.hex文件

中午和那个安工程的聊天,他就是一心想搞钱,也做了很多东西,少儿编程培训班真的有前途吗?不知道
但是我还是想考,我现在大脑恢复正常,是考呢,还是放弃呢,其实真的准备很久了,基本上近两年了,这两年
如果是学习技术,估计也学不少东西了,有点前也不是,后也不是了

3.14

polling=轮询,查询
can信号,解闭锁设置是mmi发给bdm,解闭锁状态是bdm反馈给mmi
四种条件对应两个关闭合开启,解锁或闭锁配置默认开启
can信号是配置

然后polling低频天线扫描策略是,
off档扫描,off是说IGN
on档扫描,on是说IGN
polling在off或者on档,还要加上车辆钥匙在有效区域,车内无有效钥匙,四门状态处于关闭状态

蓝牙钥匙功能
can输入,BTM发给bdm,两种信号
can输出,bdm发给BTM,三种信号

3.15

polling配置:
polling=轮询,查询
can信号,解闭锁设置是mmi发给bdm,解闭锁状态是bdm反馈给mmi
四种条件对应两个关闭合开启,解锁或闭锁配置默认开启
can信号是配置

然后polling低频天线扫描策略是:
off档扫描,off是说IGN
on档扫描,on是说IGN
polling在off或者on档,还要加上车辆钥匙在有效区域,车内无有效钥匙,四门状态处于关闭状态

subversion是版本管理系统
tortoisesvn是sub的图形化客户端是基于tortoisecvs修改的,tortoisecvs又是另外一个东西

蓝牙钥匙功能:
can输入信号,钥匙位置和蓝牙的一些命令,两种信号,btm发给bdm
can输出信号,返回蓝牙功能返回的一些状态,三种信号,bdm发给btm

1,btm发给bdm认证
2,bdm发给btm加密数据1
3,btm发给bdm加密数据2
4,bdm处理数据1和数据2,一致就通过
上述过程中,各种状态由BDM11_BTMAuthF=bdm与蓝牙认证反馈,进行判断

peps=无钥匙进入或者无钥匙启动系统
pke=无钥匙进入系统

polling解闭锁功能:
解锁开启=钥匙位置从lock或者connect跳到unlock
闭锁开启=钥匙从unlock或者PS跳到lock
注意:蓝牙连接认证后,发送unlock,lock,PS三种状态,就是上面三种
bdm再进行判断“中控锁状态”,之后执行动作
蓝牙解闭锁和蓝牙polling解闭锁是两个概念,前者手动,后者自动
BTM1_Key_Position是用于蓝牙polling
VbINP_CAN_BTUnlock_flg 这些信号是关联的BTM2 的,是蓝牙解闭锁
产品的意思,好像 0x1 unlock 就是“由近到远这个过程”
DLK 加2个新的接口,BT polling, 并加新的锁源,不能共用当前的WELCOME_UNLOCK 锁源了
DLK 会加两个接口,两个都是bool ,但是蓝牙信号判断还是你那边处理后发给 模型 1 解闭锁请求
VbINP_CAN_BTPollUnlock_flg 和 VbINP_CAN_BTPollLock_flg, 我已编译了,上传了

lit灯
dom灯
tur
dlk
trk
bsv
alm
ww
horn
mir
pdu
pwn
peps
ssb
pewar
tpms

BDM_NV11.c模型文件中,这三处变量应该是下面的赋值方式
VbINP_CFG_MirAutoAdjustEn_flg = true;

VeINP_CAN_DRLReqOff_sig = 3U;
VbINP_CFG_IGNOffUnlockEn_flg = true;

!!!
!!!
今天不得不记录一些事情,每天都有一堆破事,一堆破问题,我这破脑袋

1从svn里面拉取我的WFF代码,spc编译出差,其实根据下面error提示也可以看出是缺失文件夹里面的文件,一开始闷逼,何志维也不知道,后来问了后面那个同事,告诉我缺某几个文件,他说是因为svn上传WFF文件夹时默认不上传(除非你手动选中),我大概看了下,那几个文件不是.c或者.h后缀
2测试板中,转向锁有正极和负极,天线也需要供电(连的是LIN1),有时候上电后按钥匙没反应,可能是休眠,此时手动开门进去,再出来一个流程
3,uds上位机软件,既不在branch也不再document,它是何志维单独发给我的,我靠,因为这个我今天误点重新安装了ude软件(很长时间)
4,config的配置文件不选带汉字的,也就是不选“开沃”,剩下两个都是选择带最新日期的

5,还是没有解决我那个svn情理,经常出现中文乱码的问题(果然刚刚在csdn中解决了这个问题,以前遇到问题喜欢博客,现在呢用公司电脑,不能上网,没有逛博客的意识了)
6,何志维带我写的polling解闭锁,使用到了static用法,读取can信号,看为几,然后判断进入之后,将相应的模型flag=true或者false

3.16

今天记录一些事情,怕以后忘记了
今天,查看了下测试板的具体连线方式,记录在公司电脑上了
1解决了svn清理失败和更新失败的原因,最后采用网上的教程,并且取消了何志维之前给我选中的那个选项,然后我的电脑文件夹终于干净了
2李建华给我操作,原来uds上信号发送和状态可以使用同一个.ini文件,很神奇
3基本上都是
if
else if
else
这种判断方式
我们好像就是将can信号的读取和发送赋给模型接口,然后复杂功能是模型那边在做,我负责的就是集成部分,使用静态变量可以保存之前的状态,进而与当前的状态对比
4上午何志维看着我好像是合的别人的模型文件,下午何志维带我写的就是ota升级的代码部分,也是if else if else这种,也是将模型的flag给true或者false
5何志维说的,循环帧就是重要的信号,事件帧就是没那么重要的信号(一次发三帧结束,防止占用总线资源),周期事件帧就是循环,偶尔会停止标记一下啊

3.17

今天写的记录都在埃泰克那边的电脑里面

4.1

ctrl+G=跳到某一行

西电工作笔记(部分)【10000字】【原创】相关推荐

  1. 西电计科微机原理期末复习笔记

    本人西电19计科,微原期末90+,这是复习期间整理的笔记,基本涵盖了课程全部重点,有需要的学弟学妹可以在复习的时候参考一下.

  2. 西电计科数据库系统期末复习笔记

    本人西电19计科,数据库系统98,这是复习期间整理的笔记,基本涵盖了课程全部重点,有需要的学弟学妹可以在复习的时候参考一下.

  3. 西电计科计算机视觉期末复习笔记

    本人西电19计科,CV期末90+,这是复习期间整理的笔记,基本涵盖了课程全部重点,有需要的学弟学妹可以在复习的时候参考一下.

  4. 西电杨宗凯调研计算机学院,杨宗凯调研指导研究生工作:深化研究生教育改革...

    西电新闻网讯(记者 贾凯)1月10日下午,校长杨宗凯到研究生院/研究生工作部调研指导,听取学位与研究生教育相关工作汇报,提出了全面深化研究生教育改革的思路和要求. 座谈会上,研究生院常务副院长姬红兵对 ...

  5. 西电杨宗凯调研计算机学院,西安电子科技大学校长杨宗凯到网络与继续教育学院调研指导工作...

    1月8日下午,校长杨宗凯到网络与继续教育学院调研指导学院建设工作,听取学院工作汇报.学院党政班子全体成员参加了调研座谈,会议由网络与继续教育学院党总支负责人石峰主持. 网络与继续教育学院院长丁振国从办 ...

  6. 西电杨宗凯调研计算机学院,校长杨宗凯到计算机学院调研指导学院建设工作

    西电新闻网讯(记者 贾凯)12月13日上午,校长杨宗凯到计算机学院调研指导学院建设工作,听取学院工作汇报,与学院领导班子成员.各系所负责人和教师代表进行座谈交流. 座谈会上,计算机学院院长王泉从发展历 ...

  7. 模电学习笔记 (一) 晶体三极管工作原理

    大家好,我是一名从事硬件电路设计的小工程师一名.我决心从今天开始撰写自己的博客,一方面是为了对知识进行总结记录,加深理解与认识,另一方面希望大家可以多多批评指正,同时结识更多志同道合的朋友,一起学习进 ...

  8. 计算机读书笔记10000,网络营销读书笔记10000字

    网络营销读书笔记10000字 第6章 电子邮件营销 作为网站运营者的你,拿到潜在客户的电子邮件地址,也就拿到后续沟通.不断提醒潜在用户存在的权利. 任何情况下都不要使用垃圾邮件. 电子邮件营销之所以效 ...

  9. (原创)暴力破解西电校园网密码

    今天讨论的是信息安全的问题,具体是关于西电的校园网账号和密码.自己当时写了一个工具,距今也半年多了,现在想跟大家分享一下. 首先打开西电校园网的计费系统(当然只能内网能进): http://zyzfw ...

最新文章

  1. 报名 | 大数据如何提升保险客户体验思享会
  2. 华为mate40pro更新鸿蒙时间,确认入网!鸿蒙系统将首发mate40Pro4G版,华为旧旗舰也迎来升级...
  3. html使用共同的头部导航
  4. php instanceof操作符
  5. 清理AD过期对象,并将结果发送给指定管理员
  6. P6047-丝之割【斜率优化,dp】
  7. css3毛玻璃效果白边问题
  8. python输出缓冲区的问题
  9. OpenGL基础31:混合
  10. 是时候研读一波导师的论文--一个简单有效的联合模型
  11. 考研数学线上笔记(四):凯哥极限与连续概念选择题系列课程
  12. 微信小程序开发——字体样式设置
  13. 三星固态硬盘 SM951 NVME win7介绍与安装方法
  14. PHP教程一环境搭建 Wampserve 下载和安装
  15. ffmpeg ts与mp4互相转换
  16. 如何辨别中标麒麟和银河麒麟
  17. hec-ras的geometric Data对话框中如何加载GIS背景图层
  18. 安装配置CentOS
  19. 《Android Studio开发实战 从零基础到App上线》第一版的资源下载和内容勘误
  20. Vs2017 开发 调用 WCF

热门文章

  1. Intel千兆网卡驱动Linux系统下安装方法
  2. X1 Carbon wifi 8260 无线网卡驱动安装 backports
  3. 萨提亚·纳德拉与沈向洋CVPR对谈:那些未来可期的计算机视觉研究与应用
  4. docker目录 /var/lib/docker/containers 日志清理
  5. Arty A7开发板 + PULPino开源处理器折腾笔记
  6. 时间序列预测——ARIMA
  7. 【Fracturing amp; Destruction】Unity3D的物体爆裂、炸裂、碎裂效果
  8. 【Matlab】希腊字母
  9. css选择器(选择div内所有p元素)
  10. 20年美赛C题数据集解读与O奖论文思路