- 博客(15)
- 收藏
- 关注
原创 VS CODE 字体设置
"prettier.ignorePath": ".prettierignore", // 不使用prettier格式化的文件填写在项目的.prettierignore文件中。avoid:省略括号。"prettier.bracketSpacing": true, // 在对象,数组括号与文字之间加空格 "{ foo: bar }"// "prettier.disableLanguages": ["vue"], // 不格式化vue文件,vue文件的格式化单独设置。
2024-10-17 14:11:52 324
原创 SMO代码
/ Clark变换。函数名称: s16 SMO_CalcElAngle(stru_SMODef * this,stru_CurrAlphBeta Ialfa_beta, stru_VoltAlphBeta Valfa_beta)
2024-10-17 14:02:44 255
原创 CAN-Autosar的理解
1、什么是AUTOSAR?官方一点:AUTOSAR 就是AUTomotive Open System ARchitecture的简称,中文翻译就是汽车开放系统架构。直白一点:将汽车电子控制单元(ECU)的软件底层做了一个标准的封装。使得大家都能共用一套底层软件,只需要修改其中的一些参数,就可以匹配不同硬件,也可以匹配不同的应用层软件。如此之后,用户只需要专心负责应用层功能开发即可,底层都交给AutoSAR工程师就行了。再直白一点:“就是一套写的比较好的底层软件”。其实现了硬件驱动的封装(类似于.
2022-04-01 18:19:57 528
转载 C集锦
1.字符数组初始化在C语言中,字符串是当做字符数组来处理的;所以字符串有两种声明方式,一种是字符数组,一种是字符指针。(1)直接逐个初始化字符数组:字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};注意:如果花括号中提供的字符个数大于数组长度,则按语法错误处理...
2020-01-02 09:33:38 177
原创 简易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 433
原创 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 1184
原创 单引号和双引号的区别
拿0来举例:单引号是单个字符‘0’;双引号是字符串“0”,包含0和结束符 , 即‘0’‘\0’ 组成的有一个字符0和结束符组成的字符串。 双引号里面的是字符串,代表的却是一个指向无名数组起始字符的指针,该数组被双引号之间的字符以及一个额外的二进制值为零的字符‘\0’初始化;而单引号里面的代表字符,字符使用其ASCII码。...
2018-12-13 16:26:35 4003
原创 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 1033 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 1102
原创 定时器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 1606
原创 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 1273
原创 合泰 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 2228
原创 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 3094 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 3818
转载 CRC 32 校验
CRC即循环冗余校验码(Cyclic Redundancy Check[1] )。它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。参数模型 这个很重要,计算CRC值时,不仅仅是生成项POLY会影响到CRC值,还有很多参数会影响到最终的CRC值! 我也是查了很久才知道,晕死,在网上找了好多算法,都不是我要的结果(和另一端校验值相等的结果,
2018-04-23 09:11:30 401
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人