自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 CAN-Autosar的理解

1、什么是AUTOSAR?官方一点:AUTOSAR 就是AUTomotive Open System ARchitecture的简称,中文翻译就是汽车开放系统架构。直白一点:将汽车电子控制单元(ECU)的软件底层做了一个标准的封装。使得大家都能共用一套底层软件,只需要修改其中的一些参数,就可以匹配不同硬件,也可以匹配不同的应用层软件。如此之后,用户只需要专心负责应用层功能开发即可,底层都交给AutoSAR工程师就行了。再直白一点:“就是一套写的比较好的底层软件”。其实现了硬件驱动的封装(类似于.

2022-04-01 18:19:57 498

转载 C集锦

1.字符数组初始化在C语言中,字符串是当做字符数组来处理的;所以字符串有两种声明方式,一种是字符数组,一种是字符指针。(1)直接逐个初始化字符数组:字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};注意:如果花括号中提供的字符个数大于数组长度,则按语法错误处理...

2020-01-02 09:33:38 160

原创 简易PID_

pid.Kp=0.2;     pid.Ki=0.04;      pid.Kd=0.2;  //初始化过程    if(abs(pid.err)>200)     {      index=0;     }else{     index=1;      pid.integral+=pid.err;     }    pid.voltage=pid.Kp*pid.er...

2018-12-17 08:47:10 411

原创 stm8s 独立看门狗和窗口看门狗的代码

void WWDG_INI(void){       WWDG_WR = 0x60; //看门狗窗口值,窗口值必须在0x3F以上,但必须小于计数值,否则无法喂狗   WWDG_CR      = 0x7F; //看门狗计数值   WWDG_CR |= 0x80; //使能窗口看门狗}void Free_WWDG(void){    if ((WWDG_CR & 0x...

2018-12-14 14:06:33 1146

原创 单引号和双引号的区别

拿0来举例:单引号是单个字符‘0’;双引号是字符串“0”,包含0和结束符 , 即‘0’‘\0’ 组成的有一个字符0和结束符组成的字符串。  双引号里面的是字符串,代表的却是一个指向无名数组起始字符的指针,该数组被双引号之间的字符以及一个额外的二进制值为零的字符‘\0’初始化;而单引号里面的代表字符,字符使用其ASCII码。...

2018-12-13 16:26:35 3765

原创 c指针面试

1. 常指针与常量的指针        char * const p;  char const * p  const char *p  上述三个有什么区别?  char * const p;   //p为只读指针。  char const * p;//p值只读的指针。  const char *p; //和char const *p-----------------------...

2018-12-13 08:47:22 907 1

原创 PID电机控制简单应用

float Pid_realize(float speed){ u8 output; mPid.SetSpeed=speed; mPid.err=mPid.SetSpeed-mPid.ActualSpeed; //mPid.integral+=mPid.err; #if 1 adjustment=mPid.err*mPid.Kp; // p if(mPid.o...

2018-12-11 16:10:45 1072

原创 定时器IO模拟串口传输

@far @interrupt void TIM2_isr(void){ TIM2->SR1 &= 0x7E; TIM2->CNTRH = 0; TIM2->CNTRL = 0; if(mBT.status == BT_STATE_TX) // 传输 { if(mBT.RxTxStSpFlag == 0) { if (mBT.RxTx...

2018-12-11 15:48:05 1563

原创 I2C 模拟读写代码

 static void Delay1us(void)//please revise this function according to your system{ u8 i; for(i=0;i<15;i++);}void I2C_init(void){ // SDA CLK初始化 GPIOE->DDR|=((1<<I2C_SCK)); ...

2018-12-11 15:42:14 1233

原创 合泰 HT1632显示 驱动代码

void DisplayDriverProcess(void){    LCD_CS1=0;    HT1632C_Writer_AllDATA(0x00, image1, 48);    LCD_CS1=1;    LCD_CS2=0;    HT1632C_Writer_AllDATA(0x00, image2, 48);    LCD_CS2=1;}void HT...

2018-12-11 15:36:51 2157

原创 TM1616 显示代码

void TIME1616_SHOW(void){            uchar j;        #if 1        STB = 1;        L_CLK = 1;        DIN = 1;         TM1616write(0x00);           //显示模式设置         STB=1;              TM...

2018-12-11 15:33:50 2991 1

原创 TM1637 显示代码

#define DIO_LED      GET_BITFIELD(&PD_ODR).bit0#define CLK_LED      GET_BITFIELD(&PD_ODR).bit2void I2CStart(void){     DIO_LED=1;     CLK_LED=1;        nop();             DIO_LED=1;  ...

2018-12-11 15:28:43 3760

转载 CRC 32 校验

CRC即循环冗余校验码(Cyclic Redundancy Check[1] )。它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。参数模型 这个很重要,计算CRC值时,不仅仅是生成项POLY会影响到CRC值,还有很多参数会影响到最终的CRC值! 我也是查了很久才知道,晕死,在网上找了好多算法,都不是我要的结果(和另一端校验值相等的结果,

2018-04-23 09:11:30 369

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除