平台知识
墨子非阿萨德
这个作者很懒,什么都没留下…
展开
-
linear_Interp线性插值
#ifndef _LINEAR_INTERP_H_ #define _LINEAR_INTERP_H_ #include <stdint.h> struct LinearInterp { // 初始化曲线 void (*Init)(struct LinearInterp *self, float *arr_x, float *arr_y, uint32_t size); // 调用计算 flo.原创 2022-03-31 12:16:11 · 552 阅读 · 0 评论 -
PID框架
#ifndef _PID_H #define _PID_H //定义一个PID结构体 typedef struct PID { double SetValue; //设定的目标值 double Kp; //比例系数 double Kd; //微分系数 double Ki; //积分系数 double Error1; //误差量,即为当前值和目标值的差 double Error2; //也是误差量,但是.原创 2022-03-31 11:57:32 · 341 阅读 · 0 评论 -
软件IIC
#ifndef __I2C_A_H #define __I2C_A_H #include "stm32f10x.h" #define I2CPORT GPIOB #define I2C_SCL GPIO_Pin_6 //时钟通信端口 #define I2C_SDA GPIO_Pin_7 //数据通信端口 #define SCL_HIGH() \ { \ PBout(6) = 1; \ } //时钟线置高 #define SCL_LO.原创 2022-03-31 11:45:19 · 4369 阅读 · 0 评论 -
public_define
#ifndef _PUBLIC_DEFINE_H_ #define _PUBLIC_DEFINE_H_ #include "stdint.h" uint8_t Checksum(uint8_t *data, uint32_t len); // 累加和校验算法 uint32_t Get_Time_Interval(uint32_t start, uint32_t end); // 获取时间间隔(兼容32位变量溢出一次的情况) void ArrayReverse(uint8_t *da.原创 2022-03-31 11:38:14 · 157 阅读 · 0 评论 -
crc16
#ifndef _CRC16_H_ #define _CRC16_H_ static void InvertUint8(unsigned char *dBuf, unsigned char *srcBuf); static void InvertUint16(unsigned short *dBuf, unsigned short *srcBuf); static void InvertUint32(unsigned int *dBuf, unsigned int *srcBuf); unsigned .原创 2022-03-31 11:13:24 · 163 阅读 · 0 评论 -
韦东山freeRTOS系列教程:FreeRTOS的内部机制 简易笔记 第二天
韦东山freeRTOS系列教程:FreeRTOS的内部机制_哔哩哔哩_bilibili 11 队列实现互斥访问 12 队列第二个好处 提高CPU效率 休眠唤醒 任务B直接进入休眠态 13队列核心 关中断 环形缓冲 如何唤醒 P14 队列结构体及读操作 有数据后唤醒任务还需要唤醒下阻塞着的写操作 P15 队列写数据 P16 队列超时唤醒 系统tick会自加,加到一定值,从delaylist到就绪态,真正去判断下 P17 信号量 队列的封装...原创 2022-03-20 05:13:59 · 1424 阅读 · 0 评论 -
计算机系统
视频: https://www.bilibili.com/video/BV1cD4y1D7uR? 笔记: 计算机漫游 https://blog.csdn.net/qq_29051413/category_11036795.html 信息的表示和处理 https://blog.csdn.net/qq_29051413/article/details/116455308 程序的机器级表示 https://blog.csdn.net/qq_29051413/article/details/1165转载 2021-07-28 17:31:16 · 80 阅读 · 0 评论 -
为什么 C语言\C++ 源程序最后一行要是一个空行?
编译器会报warning: #1-D: last line of file ends without a newline这种错误,虽然这个warning没啥影响,但既然要设计这么一个warning总得有点原因吧。 C 语言是在 Unix 中发明的,为 Unix 系统的编程语言,它对文件的处理遵循一个基本的原则: 文件是流式的,可以被任意的拼接并且拼接后仍然保证完整性。 为了保证这一点,在 U...原创 2019-08-25 17:33:33 · 1805 阅读 · 0 评论 -
外部中断/事件控制器(EXTI)管理
产生中断线路目的是把输入信号输入到NVIC,进一步会运行中断服务函数,实现功 能,这样是软件级的。而产生事件线路目的就是传输一个脉冲信号给其他外设使用(方波或是闹钟),并且 是电路级别的信号传输,属于硬件级的。 另外,EXTI是在APB2总线上的,在编程时候需要注意到这点。 https://www.cnblogs.com/yangguang-it/p/6869428.html ...原创 2019-08-25 15:30:26 · 891 阅读 · 1 评论 -
数据类型的坑 int long
众所周知int类型是有坑的,要定为shortint或者longint 而long类型同样也有坑 首先51单片机不支持longlong类型 其次不同的编译器在不同的环境下long所占的字节也是不同的 charwk0[31]; union{ unsignedlong BYTE; struct{ unsignedch...原创 2019-08-15 11:37:32 · 612 阅读 · 0 评论 -
嵌入式WIFI与普通WIFI的区别
1、嵌入式WIFI的来源 我们都知道笔记本、手机、平板电脑等这类产品具有强大的CPU和大容量的存储器进行网络通信数据的处理和存储,因此在使用WIFI时不需要额外的MCU,完全借助其高速处理器和庞大的软件系统。但是对于家电,仪表,LED灯等智能家居产品,因为该类产品的主控芯片可能是成本很低、功能简单的MCU,因此这类产品无法支持普通Wi-Fi的功能。同时,还有一个重要的原因就是普通...原创 2018-09-07 18:02:40 · 2008 阅读 · 0 评论 -
STM32的8种GPIO输入输出模式
输入模式 -输入浮空(GPIO_Mode_IN_FLOATING) -输入上拉(GPIO_Mode_IPU) -输入下拉(GPIO_Mode_IPD) -模拟输入(GPIO_Mode_AIN) 输出模式 -开漏输出(GPIO_Mode_Out_OD) -开漏复用功能(GPIO_Mode_AF_OD) -推挽式输出(GPIO_M...原创 2018-08-15 18:02:37 · 368 阅读 · 0 评论