自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 SPI总线原理

时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first);整体控制逻辑负责协调整个SPI外设,控制逻辑的工作模式根据“控制寄存器(CR1/CR2)”的参数而改变,基本的控制参数包括前面提到的SPI模式、波特率、LSB先行、主从模式、单双向模式等等。(2)时钟控制逻辑 : SCK线的时钟信号,由波特率发生器根据“控制寄存器CR1”中的BR[0:2]位控制,该位是对f pclk 时钟的分频因子,对f pclk 的分频结果就是SCK引脚的输出时钟频率。

2023-11-06 23:15:53 174 1

原创 STM32串口的应用

UART外设(Universal Asynchronous Receiver and Transmitter),它是在USART基础上裁掉了同步通信功能,只有异步通信。USART在STM32应用最多的莫过于打印程序信息,一般在硬件设计时都会预留一个USART通信接口连接电脑,用于在调试程序时可以把一些调试信息打印在电脑端的串口助手上,从而了解程序是否正确、指出程序出错位置等。并行通信:指的是同一时刻可以收或发多个bit位的信息,因此需要多信号线才行。通信,最少要有两个对象,一个收,一个发。

2023-11-06 23:01:12 121 1

原创 一维数组程序举例

(1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数,依次类推,直到第n-1个数和第n个数比较为止———第一趟冒泡排序;(1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数交换——第一次选择排序,结果最小的数被放在第一个元素位置上。(2)再通过n-2次比较,从剩余n-1个数中找出次小的数,将它与第二个数交换——第二次选择排序。(2)对前n-1个数进行第二趟排序,最终使次大的数被放在第n-1个元素位置上。(3)重复上述过程,共经过n-1次排序后,排序结束。

2023-10-05 23:13:38 200

原创 C语言学习--一维数组(1)

一维数组的定义、引用、初始化以及内存分配讲解

2023-10-05 18:32:46 347

原创 gcc编译工具

但其很快扩展,变得可处理 C++,后来又扩展为能够支持更多编程语言,如 Fortran、Pascal、Objective -C、Java、Ada、Go 以及各类处理器架构上的汇编语言等,所以改名 GNU 编译器套件(GNU Compiler Collection)。GCC 还对标准的 C/C++ 语言进行了大量的扩展,提高了程序的执行效率,有助于编译器进行代码优化,能够减轻编程的工作量。GCC(特别是其中的 C 语言编译器)也常被认为是跨平台编译器的事实标准。

2023-09-02 22:53:50 310

原创 Linux C语言学习 --- 指针与数组

比如:&a[0]就表示数组中第一个元素的地址,&a[1]就表示第二个元素的地址,以此类推。多维数组就是具有两个或两个以上下标的数组,实际上,在C语言中并没有多维数组的概念,所谓多维数组就是低维数组的组合。从程序的输出结果,可以看到二维数组中各个元素的地址,由于一级指针p,p+i移动i个数,相当于移动了i列,因此也称指针p为列指针,该程序就是通过列指针对二维数组进行了遍历。数组是有一定顺序关系的若干变量的集合,占用连续的存储空间,集合中的每个元素就称之为数组的元素。存储行地址的指针变量,叫做行指针变量。

2023-08-24 23:20:57 260 1

原创 Linux C语言学习 -- 指针基础

但指针变量和数组的指针(或叫数组名)在本质上不同,指针变量是地址变量,而数组的指针是地址常量。设指针变量px的地址值等于数组指针x(即指针变量px指向数组的首元数),则:x[i]、*(px+i)、*(x+i) 和px[i]具有完全相同的功能:访问数组第i+1个数组元素。指针指向的内存区域中的数据称为指针的目标。如果它指向的区域是程序中的一个变量的内存空间, 则这个变量称为指针的目标变量。指针的目标变量简称为指针的目标。px-py 运算的结果是两指针指向的地址位置之间相隔数据的个数。

2023-08-24 21:08:53 231 1

原创 Linux C语言学习---运算符

x-22 : y-1 //运算结果为60。x+18 : y-100 //运算结果为1。z= --x+y++;// z赋值为13,x 变为4,y 变为10。// z赋值为15,x 变为6,y 变为10。z= ++x+y--;// z赋值为15,x 变为6,y 变为8。z = x / y;z = --x;// z赋值为4,x 变为4。// z赋值为5,x 变为4。C提供的算术运算符:+,-,*,/,%,++,--。// z赋值为6,x 变为6。// z赋值为5,x 变为6。

2023-08-15 22:43:47 629

原创 Linux C语言学习---输入输出

getchar函数的返回值的含义是存储从键盘上读取的字符,返回值的类型是int,很多人不理解,认为返回值应该是char类型。实际上这里的返回值是字符相对应的ASCII码,在计算机中的字符是以ASCII码的形式处理的,每一个字符都有对应的ASCII码值。这里需要说明的是,在C标准中putchar函数的参数和返回值都是整型,也就是说是以字符对应的ASCII码的形式传参或返回。putchar函数只能在终端输出一个字符型的数据,如果期望在终端按照指定的格式输出若干个数据,且为任意类型,可以用printf函数。

2023-08-13 23:19:10 516 1

原创 Linux C语言学习--变量与常量

存储类型的变量在内存中是以固定地址存放的,而不是以堆栈方式存放的;只要整个程序还在继续运行静态变量就不会随着说明它的程序段的结束而消失,它下次再调用该函数,该存储类型的变量不再重新说明,而且还保留上次调用存入的数值。在C语言中,实数只有十进制的实数,它又分为单精度实数和双精度实数,它们的表示方法基本相同。用auto存储类型说明的变量都是局部于某个程序范围内的,只能在某个程序范围内使用,通常在函数体内或函数中的复合语句里。当变量在一个文件中的函数体外说明,所有其他文件中的函数或程序段都可引用这个变量。

2023-08-13 21:50:48 169 1

原创 Linux C语言学习 -- 数据类型

强制类型转换符是一种不安全的转换,一般都是将高级类型转换成低级类型,要丢失数据的精度;//出错,数据越界,实际输出255.//出错,数据越界,实际输出-128(反码补码);//出错,数据越界,实际输出-127;(int) a -> a = 3 , 数据丢失!若为 不同精度 计算,则输出为更高的进度(强制转换除外)。若为 同精度 运算,则输出仍为同精度(强制转换除外)。因为a = -1为非零数值,逻辑为真,所以给x赋值为12,而不是18。常应用于:指针,因为指针的类型不管如何转换,它的精度都是不会丢失的。

2023-08-04 23:36:30 337 1

原创 Linux C语言学习——必备C语言基础知识

l把机器指令符号化,即通过一组简单的的符号来表示机器指令,更接近于自然语言,更容易理解和使用。和机器语言一样,开发工作量大,无法移植。直接使用机器指令(0,1序列)来设计程序,可以被计算机系统直接识别。和自然语言完全不同,难于记忆和理解,工作量大,效率低,无法移植。广义上讲,为了实现一个特定的目标而预先设计的一组可操作的工作步骤,称之为一个程序。步骤要按照一定的顺序进行,缺一不可,次序也不能错。广义的说,为解决一个问题而采用的方法和步骤成为算法。在程序中要指定数据的类型和数据的组织形式,即数据结构。

2023-08-03 23:32:21 195

原创 Linux 学习笔记:vi编辑器的使用

可以进行复制、粘贴等操作。o : (Open)进入编辑状态,并在当前光标下方建立一新行,光标移动到该新行的行首。o:(Open)进入编辑状态,并在当前光标下方建立一新行,光标移动到该新行的行首。a :(Append)进入编辑状态,从当前光标之后的位置开始插入键盘输入的字符。a:(Append)进入编辑状态,从当前光标之后的位置开始插入键盘输入的字符。O :进入编辑状态,并在当前光标上方建立一新行,光标移动到该新行的行首。O:进入编辑状态,并在当前光标上方建立一新行,光标移动到该新行的行首。

2023-08-03 23:13:19 1252

原创 Linux C语言开发笔记 DAY1

可以用:~ 来表示;常用命令:pwd、ls、cd、touch、mkdir、cp、mv、rm、cat。2)ls:用于浏览目录下的内容或文件,用法:ls [选项] 文件或目录。7)mv:移动文件或文件夹,用法:mv [选项] 文件或目录 目标位置。6)cp:复制文件或目录,用法:cp [选项] 文件或目录 目标位置。5)mkdir:创建目录,用法:mkdir [选项] 文件或目录。9)cat:用于查看文件内容,用法:cat[选项] 文件或目录。8)rm:删除文件或目录,用法:rm[选项] 文件或目录。

2023-08-01 23:42:28 134 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除