- 博客(24)
- 收藏
- 关注
原创 C语言数据存储例题1
把char放入整型空间会按照符号位进行整型提升。%d是打印有符号得到整数 %u打印无符号整数。整型放入char的空间时会发生截断。
2023-08-01 18:38:18
112
原创 关于数据存储的“大端”和“小端”的问题
译器),另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排的问题。模式,就将 0x11 放在低地址中,即 0x0010 中, 0x22 放在高地址中,即 0x0011 中。小端模式,而 KEIL C51 则为大端模式。很多的ARM,DSP都为小端模式。大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址。小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地。
2023-07-31 22:07:48
220
原创 vs常用快捷键
Ctrl+Shift+V: 剪贴板循环 (平时我们都只**惯用ctrl+c 和ctrl+v 大家可能还不知道事实上微软都已经帮我们把多次剪切的结果都保存了下来 记下这组快捷键吧 可以粘贴上几次剪切的结果 一用便知道它的强大厉害之处)Shift+Alt+C: 新建类 (shift是跟项目有关的功能键;而且添加类用的非常多;Ctrl+F: 查找 (Find) Ctrl+Shift+F: 在文件中查找 (上面已经提过了shift是表示在项目中 所以如果需要在项目中的文件中查找的话 那自然就少不了Shift)
2023-07-26 19:31:47
417
原创 结构体传参中关于“栈”的问题
栈在计算机程序中有广泛的应用,尤其在程序的执行过程中,用于保存函数调用的上下文信息、存储临时变量、进行递归算法等。在这个例子中,`addNumbers`是一个接受三个整数参数的函数,`a`、`b`和`c`分别是传递给函数的实际参数。在编程中,"参数压栈"(Parameter pushing)是指将函数调用时的参数值按照一定的规则存储到函数调用栈中。被移除的元素是最后一个被添加到栈中的元素,并且栈的指针指向新的栈顶。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的。
2023-07-17 20:14:46
113
原创 第六章 C语言指针入门详解
那如果在64位机器上,如果有64个地址线,那一个指针变量的大小是8个字节,才能存放一个地址。我们可以通过&(取地址操作符)取出变量的内存其实地址,把地址可以存放到一个变量中,这个变量就是指针变量。指针-指针的绝对值得到的是指针之间元素的个数,不是所有的指针都能相减,只有指向同一空间指针的才能相减。在32位的机器上,地址是32个0或者1组成二进制序列,那地址就得用4个字节的空间来存储,所以。指针类型决定了指针在被解引用的时候访问几个字节,如果是int*的指针,解引用访问4个字节。一个小的单元到底是多大?
2023-07-15 16:40:23
80
1
原创 Proe 5.0鼠标滚轮无法缩放的解决方法
4.按住滚轮可以旋转零件 shift+滚轮按住不放还可以将零件拖动。2.在设备选项中选择鼠标按键,将悬停在·非活动窗口滚动选项关闭。1.win+i打开设置界面。3.然后就可以进行缩放了。
2023-06-02 18:29:46
9018
原创 【FPGA】“打拍”的目的和原则
5.需要用到跳变沿的来自不同时钟域的输入,需要用到3个触发器,前两个用以同步,第3个触发器的输出和第2个的输出经过逻辑门来判断跳变沿。2.来自异步时钟域的输入需要寄存一次以同步化,再寄存一次以减少亚稳态带来的影响。3.不需要用到跳变沿的来自同一时钟域的输入,没有必要对信号进行寄存。4.需要用到跳变沿的来自同一时钟域的输入,寄存一次即可。打三拍是为了判断上升沿或下降沿。1.全局时钟的跳变沿最可靠。异步处理一般是打两拍;一个寄存器就打一拍;
2023-03-14 11:11:29
907
原创 【STM32】GPIO_InitTypeDef GPIO_InitStructure;语句的理解
而当定义GPIO的初始化设置类型时,形参2 比如定义为 GPIO_InitTypeDef GPIO_InitStructure,定义GPIO_InitStructure为GPIO_InitTypeDef 结构体类型,而不是GPIO_InitTypeDef*。根据头文件,形参1 定义GPIOx为GPIO_TypeDef* 型为指针变量,只能是有效的指针和地址,形参2 定义GPIO_InitStruct为GPIO_InitTypeDef* 型也为指针变量,也只能是有效的指针和地址.
2022-11-17 09:25:11
10455
3
原创 【STM32】时钟系统知识
几个重要的时钟: SYSCLK(系统时钟) AHB总线时钟 APB1总线时钟(低速): 速度最高36MHz APB2总线时钟(高速): 速度最高72MHz PLL时钟。3.STM32可以选择一个时钟信号输出到MCO脚(PA8)上,可以选择为PLL 输出的2分频、HSI、HSE、或者系统时钟。2. 系统时钟SYSCLK可来源于三个时钟源:①、HSI振荡器时钟 ②、HSE振荡器时钟 ③、PLL时钟。③、LSI是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟。
2022-11-16 11:05:01
1844
原创 【STM32】单片机中常用C语言知识复习
这篇文章我们主要讲解一下 C 语言基础知识。C 语言知识博大精深,也不是我们三言两语能讲解清楚,这里主要是简单的复习一下几个 C 语言基础知识点, 引导那些 C 语言基础知识不是很扎实的用户能够快速开发 STM32 程序。同时希望各位能够多去复习一下 C 语言基础知识, C 语言毕竟是单片机开发中的必备基础知识。define是 C 语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便。常见的格式:#define 标识符 字符串“标识符”为所定义的宏名。
2022-11-13 18:03:34
412
原创 【STM32】蜂鸣器实验常见问题
答: 因为STM32芯片复位之后默认状态为浮空状态,说明IO口电平是不确定的,如果不接电阻则有可能产生跳变电压导致蜂鸣器有响声。注:不能直接通过IO口驱动大功率器件,而要通过一个三极管的放大电路。为什么要接一个10K的电阻R33电阻下拉?记得在头文件创建好之后添加路径。为什么调用的是APB2?
2022-11-10 21:48:13
2276
原创 【STM32】GPIO输入控制流水灯笔记
GPIO_InitTypeDef是一个结构体类型同义字,其功能是定义一个结构体,该结构体有三个成员分别是u16类型的GPIO_Pin、GPIOSpeed_TypeDef 类型的GPIO_Speed和GPIOMode_TypeDef 类型的GPIO_Mode。注: “assert_param是一个宏定义;在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。一开始要使能时钟,把函数放在LED.c中。
2022-11-10 21:13:23
384
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人