![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 57
lhwq26
这个作者很懒,什么都没留下…
展开
-
<C语言>从零开始手写BootLoader--STM32L073/IAR/HAL库
从零开始手写BootLoader–STM32L073/IAR/HAL库一、测试平台:MCU:STM32L073V8T6(Cortex-M0+)固件库:HAL+STM CubeIDE:IAR For STM32二、实验目的使用BootLoader通过串口将程序bin文件烧录至单片机内,然后跳转到烧录位置运行程序。三、基础知识STM32L073V8T6的启动方式有三种:内置FLASH启动、内置SRAM启动、系统存储器ROM启动,通过BOOT0和BOOT1引脚的设置可以选择从哪中方式启动,这里选择原创 2021-08-06 10:31:52 · 1852 阅读 · 1 评论 -
<C语言> typeof 关键字与max(a,b)宏
<C语言> typeof 关键字与max(a,b)宏typeof 关键字与max(a,b)宏讲max(a,b)宏之前需要先讲解typeof关键字,不要心急,看完本片文章后相信你一定会有所收获ANSI C 定义了 sizeof 关键字,用来获取一个变量或数据类型在内存中所占的存储字节数。GNU C 扩展了一个关键字 typeof,用来获取一个变量或表达式的类型。如: int i ; typeof(i) j = 20; typeof(int *) a; int f();原创 2021-07-08 15:30:46 · 1133 阅读 · 1 评论 -
<C语言>数据结构:环形缓冲区RingBuffer
数据结构:环形缓冲区 当有大量数据的时候,我们不能存储所有的数据,那么计算机处理数据的时候,只能先处理先来的,那么处理完后呢,就会把数据释放掉,再处理下一个。那么,已经处理的数据的内存就会被浪费掉。因为后来的数据只能往后排队,如过要将剩余的数据都往前移动一次,那么效率就会低下了,肯定不现实,所以,环形队列就出现了。环形缓冲区是一项很好的技术,不用频繁的分配内存,而且在大多数情况下,内存的反复使用也使得我们能用更少的内存块做更多的事。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(原创 2020-11-19 16:12:41 · 1194 阅读 · 1 评论 -
<C语言>函数指针心得
函数指针函数指针最常见的两个用途:转换表(jump table)作为参数传给另一个函数函数名在使用时总是由编译器将它转换为函数指针回调函数这里有一个简单的函数:Node * search(Node* node,int const value){ while(node!=null) { if(node->value == value) break; node=node->next; } re原创 2020-11-19 16:11:06 · 240 阅读 · 0 评论 -
<C语言>C语言实现状态机
ch2 C语言实现状态机 状态机模式适用于有限状态下程序按照逻辑循环执行,相较于在while循环中通过if else判断状态标志来执行相应的动作,状态机模式能够灵活的增加、减少状态,程序逻辑更为清晰 使用函数指针管理状态,每个状态执行函数在执行完之后,返回下一个状态执行函数的指针,判断state进而执行程序//函数指针重定义typedef int (*functpr)();//函数指针类型转换声明typedef functpr (*ptrfuncptr)();//定义起始状态、停止状态、状原创 2020-11-19 16:04:53 · 847 阅读 · 0 评论 -
<C语言>格式转换
//大小端字节序转换//0x49000000->0x00000049//0x00000049->0x49000000uint32_t Uint32SwapEndian(uint32_t value){ return ((value & 0x000000FF) << 24) | ((value & 0x0000FF00) << 8) | ((value & 0x00FF00原创 2020-11-19 16:07:30 · 378 阅读 · 0 评论