![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
最牛逼的基础语言,没有之一。
磨子
明日复明日,明日何其多。
展开
-
嵌入式--STM32外设操作干粮(持续更新)
串口嵌入式中的串口一般指UART口,知道他就是用来通信的就OK。一般会使用三种方式进行数据的通信处理。分别是:轮询、中断、DMA。以USART1为例,查询手册可知:USART1: 发送:PA9 接收:PA10轮询:使用串口助手测试,将接收到的串口数据发送给串口助手。int main( void ){ unsigned char test =0; GPIO_InitTypeDef gpio_Init; USART_InitTypeDef usart_Init; //时钟开启 RC原创 2022-04-07 14:53:17 · 3440 阅读 · 0 评论 -
串口监听大量数据匹配处理--利用环形buff
功能描述:A和B设备之间在串口通信,C设备利用串口去监听A和B的通信,我们将要监听的字段给到C,C将匹配到的字段数据保存下来。实现方法:利用线性数组将头尾连起来,形成一个环形的buff来接收串口中断的数据。关键点:buff判满不再接收数据,否则尾指针移动tail++(tail+1)%maxsize = head尾指针达到最大置0:tail>=maxsizetail=0;buff中数据个数:(tail -head+maxsize)%maxsize要确保数据个数要大于匹配的字段长度原创 2022-01-12 10:31:05 · 463 阅读 · 0 评论 -
指针取数组元素值为其指针地址
#include <stdio.h>int main(void) { static const int buff[5] = {0x40201c,0x200,0x300,0x12345678,0x500}; int* p =NULL; short temp = 0; p = (int*)buff[0]; temp = (short)*p; printf("%p\n",&buff[0]); printf("%p\n",&bu原创 2021-08-12 15:54:46 · 418 阅读 · 0 评论 -
CRC16校验--查表法
UINT8 const g_auchcrchi[] ={ 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, 0xc0, 0x80, 0x41, 0x01, 0xc0, 0x80,原创 2021-07-15 09:38:05 · 1004 阅读 · 0 评论 -
最简单的共用体Union来诠释大小端存储问题
大端模式:数据的高位存在内存的低地址中,数据的低位存在内存的高地址中。小端模式:数据的高位存在内存的高地址中,数据的低位存在内存的低地址中,举个例子:int i=1;共用体Union的特点;同一时间只能存储一个数据成员。所有成员的起始地址一样。共用体所分配的内存以最大数据类型而定。由此根据其特点,可写如下函数判断是大端存储还是小端存储:#include <stdio.h>int checksystem(void){ union check { int i;原创 2020-09-11 11:24:07 · 292 阅读 · 0 评论