- 博客(53)
- 收藏
- 关注
原创 第7章 使用库函数点亮一个LED
功能:初始化一个或多个IO口(同一组端口)的工作模式,输出速度,输出类型,上下拉模式,即GPIO的4个配置寄存器。功能:读取端口中的某个管脚输出电平。
2024-10-16 00:51:52
625
原创 第6章 STM32固件库和库函数模板创建
CMSIS标准的英文全称是Cortex Microcontroller Software Interface Standard,翻译过来就是ARM Cortex微控制器软件接口标准。因为基于Cortex内核的芯片生产厂商有很多,不只是ST公司。为了解决不同厂家生产的Crotex芯片软件兼容问题,ARM公司和其他芯片厂商制定了这个CMSIS标准。2.固件库内文件夹及文件介绍在光盘内“8–STM32相关资料\STM32F4xx固件库”文件之间的关系图库函数模板创建最后库函数模板创建完成。
2024-10-14 00:42:48
242
原创 第5章 STM32 GPIO介绍
具体寄存器参考STM32F4中文参考手册(1)确定GPIO是输入、通用输出、复用功能还是模拟输入(模式寄存器:MODER) (2)如果输出还要确定是推挽输出还是开漏输出(输出类型寄存器:OTYPER) (3)配置输出的速度(输出速度寄存器:OSPEEDR) (4)输出的时候内部的上/下拉电阻要不要开启(上拉/下拉寄存器:PUPDR) (5)具体要输出的内容(置位复位寄存器:BSRR和数据输出寄存器:ODR)
2024-10-13 16:18:21
407
原创 第4章 寄存器模板创建
注意在编译之前把main.c和stm32f4xx.h里面的内容全部清除再编译查看无错误无警告到这一步我们的寄存器模板才算真正创建好的。
2024-10-13 15:39:53
812
原创 Windows Server 2012 R2 新增功能之管理工具、共享、Web服务(续)
1.7 管理工具任何优秀的网络操作系统都应该提供简便的方式来保持一台服务器或1000台服务器启动并运行,使人们能够尽可能少地管理服务器。以前没有哪个操作系统在服务器管理上能做到这一点,但是Windows Server 2012 R2在这方面已经进行了改善,提供了一些有用的新工具。1.7.1 Server Manager在Windows Server 2008之前,当管理员要...
2024-10-13 13:33:17
1064
原创 第3章 存储器与寄存器介绍
我们这里仅仅以GPIO这个外设为例,给大家讲解了如何使用C语言对寄存器封装的,对于其他的外设也是使用同样方法。其实到了后面的实验程序的编写时,我们都是使用ST公司提供的固件库,他把STM32所有外设都已经封装好了,我们这里分析这个封装过程只是想让大家更加清楚理解如何使用C来封装寄存器的
2024-10-13 13:30:17
576
原创 第2章 STM32最小系统介绍
我们可以通过万能的百度,搜索关键字“KEIL5下载”即可,我们这里使用MDK5.14版本,如果后面出了更高的版本选择性升级即可,不过也没有必要什么都追求最新的,用习惯了一个软件就行
2024-10-13 00:16:13
415
原创 第1章 开发板功能及使用介绍
STM32的用处取决于其内部资源,前面我们了解了STM32内部拥有非常多的通信接口。所以如果你使用的块拥有此接口都可以通信。 比如: USART: ESP8266 WIFI模块、GSM模块、蓝牙模块、GPS模块、指纹识别模块等。 IIC: RRPROM、MPU6050陀螺仪、0.96寸OLED屏、电容屏等。 SPI: 串行FLASH、以太网W5500、vs1003/1053音频模块、SPI接口的OLED屏、电阻屏等。 AD/DA:光敏传感器模块、烟雾传感器模块、可燃气体传感器模块
2024-10-12 23:13:19
873
原创 STM32位带操作
在学习51单片机时就已经使用过位操作,比如使用sbit对单片机IO口的定义,但是STM32中并没有这类关键字,而是通过访问位带别名区来实现,即通过将每个比特位膨胀成一个32位字,当访问这些字的时候就达到了访问比特的目的。比方说BSRR寄存器有32个位,那么可以映射到32个地址上,当我们去访问这32个地址就达到访问32个的目的
2024-10-04 16:50:11
760
原创 自学C语言-11
迄今为止,我们在程序中用到的都是基本数据类型。但实际开发中,有时简单的变量类型无法满足程序中各种复杂的数据要求,因此C语言还提供了构造类型。构造类型数据是由基本类型数据按照一定规则组成的。本章致力于使学习爱好C语言的了解结构体的概念,掌握结构体和共用体的使用方法,并结合具体实例使大家对结构体和共用体数组,指针有一个更为深刻的理解。
2024-09-07 14:04:14
959
原创 自学C语言-10
指针是C语言的一个重要组成部分,是C语言的核心,精髓所在。用好指针,可以在C语言开发中起到事半功倍的效果。一方面,可以提高程序的编译效率、执行速度,以及动态存储分配;另一方面,可使程序更加灵活,表示和操作各种数据结构更便捷,编写出高质量的应用程序。
2024-06-24 22:18:25
370
原创 自学C语言-9
大型程序一般会被分为若干个程序模块,每个模块实现一个特定功能。C语言中,由函数实现子程序,由子程序实现模块功能。构成C程序的基本单元是函数,函数中包含着程序可执行的代码。每个C程序的入口和出口都位于main函数中,但并 不需要把所有指令都放在main函数中。一般的做法是将程序划分成若干个模块,每个模块完成一部分功能,不同的程序模式可以由不同的人来完成,从而提高软件开发的效率。
2024-06-15 12:12:37
1120
原创 自学C语言第2篇的核心技术:第8章 数组
这是因为数组下标是从0开始的,iArray[0]表示第一个元素,iArray[1]表示第2个数组元素,iArray[2]表示第3个数组元素。定义和初始化之后,iArray[0]=1,iArray[1]=2,iArray[2]=3,iArray[3]=4,iArray[4]=5,iArray[5]=6。数组iArray包含6个元素,但初始化时只给出了3个值,结果是数组前3个元素得到赋值,后3个元素被默认赋值为0。代码中的int为数组元素的类型,iArray为数组变量名,括号中的5表示数组中包含5个元素。
2024-02-12 22:57:13
1211
原创 自学C语言-7
在循环语句块中,可以看到对其中的变量进行加1的运算,这里的加1运算就是循环结构中使条件为假的操作,也就是使得iSum不小于100,否则程序会一直循环下去。如果一开始条件就不满足,则跳过循环体中的语句,直接执行后面的程序代码。如果第一次检验时条件满足,那么在第一次或其后的循环过程中,必须得有使条件为假的操作,否则循环将无法终止。【例7.1】计算n~100的累加和(while版) 用户输入一个值,从这个值开始,依次与之后的连续若干个自然数相加,当该自然数大于100时结束,并输出这若干个自然数的和。
2024-01-30 22:26:37
585
原创 自学C语言-6
在第二个if语句中,判断的是value是否等于0,因为设定value的值为0,所以表达式成立,那么判断的结果就为真,执行if后的语句。例如在例6.1中,虽然使用if语句对输入的loc、ser变量进行了判断,但是只给出了判断正确,也就是loc等于13、ser等于111时执行的操作,并没有给出判断错误时对应的操作。程序开发中,会遇到许多类似于红绿灯这样的“决策”,可将其简化成对某个“条件”的检验,进而转换为判断某个表达式的值是真还是假,最后根据真假情况选择性地执行后续的操作。输入的数字为非0,表示条件为真。
2024-01-25 21:25:09
1230
原创 自学C语言-4
本章致力于使读者了解表达式的概念,掌握运算符及相关表达式的使用方法,其中包括赋值运算符、算术运算符、关系运算符、逻辑运算符、位逻辑运算符、逗号运算符和复合赋值运算符,并且通过实例进行相应的练习,加深印象。先定义变量,再进行变量的赋值操作也是可以的。需要说明的是,两个整数相除的结果为整数,如7/4的结果为1,舍去的是小数部分。(2)在强制类型转换代码中,用载货区的宽度除以箱子的宽度再强制转换成int类型,载货区的长度除以箱子的长度再强制转换成int类型,两者相乘,即可计算出最大能装载的箱子数量。
2024-01-19 22:34:40
1234
原创 自学C语言-3
学好了C语言,会很容易掌握其他编程语言,这是因为不同的编程语言有着一些共性存在。同时,一个好的程序员在编写代码时,一定要有规范性,清晰、整洁的代码才是有价值的。俗话说:没有规矩,不成方圆。虽然C语言中的代码书写形式相对自由,但是为了使编写的代码具有通用、友好的可读性,应尽量遵守一定的规范。本章致力于使学习者掌握C语言中非常重要的一部分知识-数据类型、常量与变量。只有学懂了这些知识,才可以开始编写程序。C语言中,代码按递进层次依次向右缩进,每次缩进4个字符。register变量。
2024-01-15 15:01:12
617
原创 自学C语言-2
其根据是:既然任何算法都可以由顺序、选择和循环3种结构组成,则各基本结构之间的流程线就是多余的,因此可以去掉所有流程线,将全部的算法写在一个矩形框内。Bohra和Jacopini为 了提高算法的质量,提出了3种基本结构,即顺序结构、选择结构和循环结构,因为任何一个算法都可由这3种基本结构组成。一个算法可读性的好坏十分重要,如果一个算法比较抽象,难以理解,那么这个算法就不易于进行交流和推广使用,其后续修改、扩展、维护都十分不方便。其中,算法是核心,解决的是“做什么”和“如何做”的问题。
2024-01-15 14:49:17
1028
原创 自学C语言-1
在诸多的高级语言中,C语言是不折不扣的元老级语言。它是怎么发展而来的?有哪些特性?怎么样才能使用它开发一个C程序?本章就带你来了解这些信息。除此以外,本章还会介绍Visual C++ 6.0和Visual Studio 2019开发环境,让你快速对C语言有一个全面的了解。深刻了解C语言,你会对编程产生浓厚的兴趣。本章的知识架构及重难点如下:开发环境:Visual C++ 6.0 Visual Studio 2019C语言概述:
2024-01-14 21:44:53
1274
原创 C语言学习-12
本章介绍以下内容:1.关键字:auto、extern、static、register、const、volatile、restricted、_Thread_local、_Atomic 2.函数:rand()、srand()、time()、malloc()、calloc()、free() 3.如何确定变量的作用域(可见的范围)和生命期(它存在多长时间)4.设计更复杂的程序。C语言能让程序员恰到好处地控制程序,这是它的优势之一。程序员通过C的内存管理系统指定变量的作用域和生命期,实现对程序的控制。合理使用内存储存
2023-10-04 15:10:34
141
原创 C语言学习-11
本章介绍以下内容:函数:gets()、gets_s()、fgets()、puts()、fputs()、strcat()、strncat()、strcmp()、strncmp()、strcpy()、strncpy()、spritf()、strchr() 创建并使用字符串 使用C库中的字符和字符串函数、并创建自定义的字符串函数 使用命令行参数。字符串是C语言中最有用、最重要的数据类型之一。虽然我们一直在使用字符串,但是要学的东西还很多。C库提供大量的函数用于读写字符串、拷贝字符串、比较字符串、合并字符串、查找字
2023-08-14 17:19:57
408
原创 C语言学习-10
本章介绍以下内容:1.关键字:static 2.运算符&、*(一元) 3.如何创建并初始化数组 4.指针(在已学过的基础上)、指针和数组的关系 5.编写人们通常借助计算机完成统计每月的支出、日降雨量、季度销售额等任务。企业借助计算机管理薪资、库存和客户交易记录等。作为程序员,不可避免地要处理大量相关数据。通常,数组能高效便捷地处理这种数据。第6章简单地介绍了数组,本章将进一步地学习如何使用数组,着重分析如何编写处理数组的函数。这种函数把模块化编程的优势应用到数组。通过本章的学习,你将明白数组和指针关系密切。
2023-08-09 08:41:13
426
原创 C语言学习-9
本章介绍以下内容:关键字:return 运算符:*(一元)、&(一元)函数及其定义方式 如何使用参数和返回值 如何把指针变量用作函数参数 函数类型 ANSI C原型 递归 如何组织程序?C的设计思想是,把函数用作构件块。我们已经用过C标准库的函数,如printf(、 getchar()、putchar()和strlen()。现在要进一步学习如何创建自己的函数。前面章节中已大致介绍了相关过程,本章将巩固以前学过的知识并做进一步的拓展。
2023-08-01 20:01:24
579
原创 C语言学习-8
本章介绍以下内容:1.更详细地介绍输入、输出以及缓冲输入和无缓冲输入的区别 2.如何通过键盘模拟文件结尾条件 3.如何使用重定向把程序和文件相连接 4.创建更友好的用户界面。在涉及计算机的话题时,我们经常会提到输入(input)和输出 (ouput)。我们谈论输入和输出设备(如键盘、U盘、扫描仪和激光打印机), 讲解如何处理输入数据和输出数据,讨论执行输入和输出任务的函数。本章主要介绍用于输入和输出的函数(简称I/O函数)。I/O函数(如printf()、scanf()、getchar()、putchar(
2023-07-30 21:09:14
603
原创 C语言学习-7
本章介绍以下内容:关键字:if、else、switch、continue、break、case、default、goto 运算符:&&、||、?: 函数:getchar()、putchar()、ctype.h系列 如何使用if和if else语句,如何嵌套它们 在更复杂的测试表达式中用逻辑运算符组合关系表达式 C的条件运算符 switch语句 break、continue和goto语句 使用C的字符I/O函数:getchar()和putchar() ctype.h头文件提供的字符分析函数系列。
2023-07-18 12:49:36
710
原创 C语言学习-5
现在,读者已经熟悉了如何表示数据,接下来我们学习如何处理数据。C语言为处理数据提供了大量的操作,可以在程序中进行算术运算、比较值的大小、修改变量、逻辑 地组合关系等。我们先从基本的算术运算(加、减、乘、除)开始。组织程序是处理数据的另一方面,让程序按正确的顺序执行各个步骤。C有许多语言特性,帮助你完成组织程序的任务。循环就是其中一个特性,本章中你将窥其大概,循环能重复执行行为,让程序更有趣、更强大。
2023-07-13 11:19:08
2381
原创 C语言学习-4
介绍输入和输出。与程序交互和使用字符串可以编写个性化的程序,详细介绍C语言的两个输入/输出函数:printf()和scanf()。学会使用这两个函数,不仅能与用户交互,还可根据个人喜好和任务要求格式化输出。最后,简要介绍一个重要的工具——C预处理指令,并学习如何定义、使用符号常量。
2023-07-11 12:38:39
821
原创 C语言学习-3
程序离不开数据。把数字、字母和文字输入计算机,就是希望它利用这些数据完成某些任务需要计算一份利息或显示一份葡萄酒商的排序列表。本章除了介绍如何读取数据外,还将介绍常量和变量的区别,
2023-06-28 14:02:41
538
原创 C语言学习-2
C程序是什么样子的?浏览本书,能看到许多示例。初见C程序会觉得有些古怪,程序中有许多{、cp->tort和*ptr++这样的符号。然而,在学习C的过程中,对这些符号和C语言特有的其他符号会越来越熟悉,甚至会喜欢上它们。如果熟悉与C相关的其他语言,会对C语言有似曾相识的感觉。本章,我们从演示一个简单的程序示例开始,解释该程序的功能。同时,强调一些C语言的基本特性。
2023-06-23 23:40:32
411
原创 C语言学习-1
欢迎来到C语言的世界。C是一门功能强大的专业化编程语言,深受业余编程爱好者和专业程序员的喜爱。本章为读者学习这一强大而流行的语言打好基础。并介绍几种开发C程序最可能使用的环境。我们先来了解C语言的起源和一些特性,包括它的优缺点。然后,介绍编程的起源并探讨一些编程的基本原则。最后,讨论如何在一些常见系统中运行C程序。
2023-06-21 19:44:19
360
原创 自学单片机-15
在前面已经了解到了不少关于时钟的概念,比如,单片机的主时钟是11.0592M,I2C总线有一条时钟信号线SCL等,这些时钟本质上都是一个某一频率的方波信号。那么除了这些在前面新学到的时钟概念外,还有一个早已熟悉的不能再熟悉的时钟概念——“年-月-日、时:分:秒",就是钟表和日历给出的时间,它的重要程序就不需要多说了,在单片机系统里把它称作实时时钟,以区别于前面提到的几种方波时钟信号。实时时钟,有时也被称作墙上时钟,很形象的一个名词,大家知道它们讲的是一回事就行了。本章将学习实时时钟的应用,有了它,单片机系统
2023-04-15 20:45:42
560
原创 自学单片机-14
前几章学习了一种通信协议叫作UART异步串行通信,本章要学习第二种常用的通信协议I2C。I2C总线是由PHILIPS公司开发的两线式串行总线,多用于连接微处理器及其外围芯片。I2C总线的主要特点是接口方式简单,两条线可以挂多个参与通信的器件,即多机模式,而且任何一个器件都可以作为主机,当然同一时刻只能有一个主机。从原理上来讲,UART属于异步通信,比如计算机发送给单片机,计算机只负责把数据通过TXD发送出来即可,接收数据是单片机自己的事情。而I2C属于同步通信,SCL时钟线负责收发双方的时钟节拍。
2023-04-06 00:02:17
261
2
原创 自学单片机-13
理念上的内容要想逐步消化掌握,必须通过大量的实践进行巩固,否则时间一长,极容易忘掉。尤其是一些编程相关的技巧,就是靠不停地写程序,不停地参考别人的程序慢慢积累成长起来的。本章学习1602的例程和实际开发中比较实用的串口通信程序。
2023-03-31 13:10:19
183
原创 自学单片机-12
我们在学C语言的时候学到指针,每一位教C语言的老师都会告诉我们一句:指针是C语言的灵魂。由此可见,指针是否学会是判断一个人能否真正学会C语言的重要指标之一,但是很多同学只知道其重要性,却学学会其灵活性。简单的程序,100多行代码,不需要指针也可以轻松搞定,但是当代码写到成千上万行甚至更多的时候,利用指针就可以直接而快速地处理内存中的各种数据结构中的数据,特别是数组、字符串和内存的动态分配等,它为函数之间各类数据传递提供了简洁便利的方法。说了这么多作用估计大家没用过指针了体会不到,但这里就是表达这样一个意思
2023-03-27 00:42:38
1229
原创 自学单片机-11
通信,按照传统的理解就是信息的传输与交换。对于单片机来说,通信则与传感器、存储芯片、外围控制芯片等技术紧密结合,成为整个单片机系统的”神经中枢“。没有通信,单片机所实现的功能仅仅局限于单片机本身,就无法通过其他设备获得有用信息,也无法将自己产生的信息告诉其他设备。如果单片机通信没处理好,它和外围器件的合作程度就受到限制,最终整个系统也无法完成Transmitter,即通用异步收发器)串行通信是单片机最常用的一种通信技术,通常用于单片机和计算机之间以及单片机和单片机之间的通信。
2023-03-22 15:18:36
425
原创 自学单片机-10
本章内容主要通过一些实践例程来提高大家对编程的熟练度,并且帮助大家进行一些算法和技巧上的积累。虽然是练习为主,但也涉及了不少软硬件知识的学习,比如数据类型转换、中断响应延迟、位操作技巧以及PWM的知识等。在学习本章内家的时候,一定要达到不看教材,就能独立把程序做出来的效果,那样才能基本上掌握相关知识点和内容。
2023-03-14 00:24:46
520
原创 自学单片机-9
对于技术的学习,希望读者一定要有足够的耐性和韧性。如果决定从事单片机这门技术,就一定要坚持学习下去,不能半途而废,当坚持学习一段时间后会发现自己慢慢会喜欢上单片机,对这些东西有了浓厚的兴趣和感情, 离成功就不远了。学到第9章了,鼓励鼓励自己,再加把劲哦!本章首先来了解单片机I/O的一些细节内容,然后在此基础上再学习两种常用的设备使用方法----------步进电机和蜂鸣器。
2023-02-25 10:33:33
345
原创 自学单片机-8
用户与单片机之间的信息交互依赖两类设备:输入设备和输出设备。前边讲的LED小灯、数码管、点阵都是输出设备,本章就来学习一下最常用的输入设备--按键,同时还会学到硬件电路的一些基础知识与C语言函数的一些进阶知识。
2023-02-11 23:44:03
572
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人