输入捕获简介:输入捕获:IC(Input Capture),输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁定到CCR中。输入捕获用于测量PWM波形、占空比、脉冲间隔等。高级定时器和通用定时器都拥有4个输入捕获通道。可配置为PWMI模式,同时测量频率和占空比。可配合主从出发模式,实现硬件全自动测量。输出比较与输入捕获的区别:输出比较是根据CNT和CCR的大小关系来执行输出动作
首先新建个对射式红外传感器的模块;在模块中,首先写模块的初始化代码,把模块要用的资源配置好;#include "stm32f10x.h" // Device header void CountSensor_Init(void) { }因为我们要做一个红外传感器从IO口输入的实验,在初始化函数中,首先就要考虑如何配置外部中断;配置中断步骤:1.配置RCC,把涉
STM32驱动舵机:舵机接线图:将PWM脚接在开发板PA1处;新建舵机模块:分析舵机的PWM信号:在一个周期20ms的脉冲信号上,高电平占空比为0.5ms-2.5ms分别对应着0°-180°。计算PWM的参数信息:PSC为72,ARR为20K,这样就得到一个频率周期为50Hz的信号。其中20KHz等于20ms,将CCR设置为500即=0.5ms的占空比。将CCR设置为2500既可以得到一个2.5m
首先了解输出比较的概念:输出比较(OC)的英文全称:Output Compare,通过设置计数器CNT和CCR(捕获/输出比较寄存器),来输出PWM波形。PWM波形的一些参数:1:频率 = 1 / Ts(周期)2:占空比:指高电平的时间在整个高低电平周期中的时间占比,Ton / Ts3:分辨率:指占空比变化的最低精度(最小幅度)捕获/比较通道的输出部分:CNT与CCR进行比较,比较值进入输出模式控
本节来编写定时器中断的实验代码,使用0.94寸OLED显示实验的效果:1.在System项目目录下新建Timer.c/.h模块2.编写Timer_Init函数,对定时器进行初始化配置。在库函数TIM.h文件中,熟悉定时器初始化的相关函数:编写void Timer_Init(void)定时器初始化函数如下:void Timer_Init(void) { RCC_APB1PeriphClockCmd
STM32定时器类型:高级定时器:TIM1、TIM8.——总线:APB2通用定时器:TIM2、TIM3、TIM4、TIM5——总线:APB1,拥有基本定时器全部功能,并额外具有内外时钟源选择、输入捕获、输出比较、编码器接口、主从模式触发等功能基本定时器:TIM6、TIM7——总线APB1,拥有定时中断、主模式触发DAC的功能STM32F103C8T6定时器资源:TIM1、TIM2、TIM3、TIM
中断:在主程序中运行过程中,出现了特定的中断触发条件,使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源。中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂定当前中断程序,转而去处理新的中断程序,处理完成后依次返回。
本节在学习GPIO输入之前,我们首先学习传感器电路的硬件知识,其次对C语言中的一些基本知识进行复习,最后编写GPIO输入的代码。传感器电路的硬件知识下图中为传感器部分的原理图:图中将传感器接在P1连接座,通过N1传感器输出模拟电压信号IN+,将IN+信号输入到电压比较器LM393与可调电阻产生的N-信号进行比较,比较后输出数字信号DO,如果DO信号为低,则LED2导通点亮,如果DO信号为高,则LE
GPIO的内部结构:在STM32中,所有的外设都是挂载在APB2外设总线上的,GPIO内包含了寄存器和驱动器,内核通过APB2总线对寄存器进行读写,寄存器的每一位对应每一个引脚。驱动器是用来增强GPIO驱动能力的GPIO位的内部结构:在下结构图中,信号从右边的I/0引脚输入,通过内部的上拉或下拉开关进行到TTL肖特基触发器处,模拟量信号在TTL肖特基触发器前输入到模拟输入端口处。 电压经过TTL肖
1.使能外设时钟输入:RCC_APB2PeriphClockCmd函数,查看函数定义,根据函数定义填写参数:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);2.配置端口模式输入函数GPIO_Init,跳转到函数定义,查看函数定义得知函数体的第二个参数是结构体,先定义结构体并且填写结构体的各个参数,然后填写函数参数: GPIO_InitType
新建基于标准库的工程:一、keil5--Project--NEW vision project--选择文件路径--选择设备STM32F103C8,完成项目创建。二、添加STM32的启动、内核文件、头文件、时钟配置文件:打开路径:STM32\STM32入门教程资料\固件库\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.
STM简介STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器,本次课程采用的STM32F1系列,ARM公司设计ARM内核,半导体厂商完善内核周边电路并产生芯片STM32F103C8T6参数RAM:20K 指运行内存,实际存储介质是SRAMROM:64K 指程序存储器,实际存储介质是Flash内存供电:2.0-3.6V 标准3.3V封装:LQFP48最小系统电路包括:供电时钟复
1.首先查看规格书和芯片引脚标识确定串口的RX/TX引脚分别是P3.0和P3.1:点击虚拟仪器中的虚拟示波器,放置在桌面上:将虚拟示波器的RX接到单片机的TX,将虚拟示波器的TX接到单片机的RX:接下来打开keil编写串口收发的程序:在stc-isp的范例程序中,找到STC89Cxx,找到串口的C语言范例,复制到keil中,做进一步的修改:在了解了串口关于硬件的知识后,我们应该熟悉与串口相关的寄存
找到单片机中的外部中断引脚位置,查看规格书得知,外部中断引脚采用下降沿触发或低电平触发,在这里我们接两个按键,使用按键按下产生低电平触发外部中断的方式:在P2.1、P2.2处接两个LED灯来演示进入外部中断后进行操作LED灯的效果:如何使用外部中断呢? 百度查找STC89C51系列的中断例程:进行简单修改即得到了我们想要的程序框架:#include <REGX52.H> sbit L
首先在proteus中点击P放置器件,输入DIPSW来放置1个插件形式的按键,将按键连接在P3的IO口上:编写程序,通过读取P3的值,赋给P2,来获取按键的输入效果:#include <REGX52.H> int main() { int i = 0; while(1) { P2_0 = ~P3_0; } return 0;通过按键来控制来控制P1^0口的LED亮灭
跑马灯仿真指导:跑马灯keil程序:#include <REGX52.H> #include <intrins.H> //延时函数需要添加的头文件 void Delay300ms() //@11.0592MHz 延时函数 { unsigned char i, j, k; _nop_(); i = 3; j = 26; k = 223; do {
在keil中新建项目:选择工程保存的路径:选择单片机的型号和文件包为AT89C52(基本同STC89C52兼容):点击创建. C文件:填写文件名和文件类型:至此,创建程序文件成功: 添加头文件,添加main函数,编译确认无报错,即可以开始编写程序:选中“目标的选项按钮”,选择output,选择creat hexfile选项,在编译时即可以创建hex格式的文件:回到proteus软件中
新建工程并指定存储路径:使用默认模板创建原理图,并且不需要创建PCB的仿真,选择【没有固件项目】点击下一步,完成工程的创建:进入工程界面后,点击P放置器件:输入89C51,选择89C51单片机,在绘图界面单击,将proteus放在图纸上:接下来完成晶振、复位、EA启动选择,上拉电阻等最小系统部分的绘制:首先点击P放置器件,搜索Crystal,选择晶振,放在图纸中,使用空格键旋转放置好器件(设置空格
安装proteus:手动卸载本机安装的其他版本proteus一并删除安装文件。点击p8.11.SP1安装包,默认安装所需的运行库,默认点击下一步安装,不用理会许可证文件(之后可以替换)。点击下一步,之后会弹出Labcenter Liceence Manager1.11对话框,选择Browse For Key File,选择安装文件中的许可证文件,然后点击Install,导入证书后点击Done。点击
什么是定时器/计数器? --- 既可以定时,也能计数的一种单片机内部资源,主要用于软件计时和软件延时等场合。但同一时刻只能使用其中一种功能。定时器的核心功能简单一句话说就是“启动定时器后,每个机器周期到来,初值寄存器自动加1,直到计满溢出”。定时器的工作流程:1.启动信号2.预设机器周期--以12MHZ为例,单片机时钟信号÷12=1MHZ,等于一个机器周期是1us3.按预设初值寄存器来启动计算;
1.1.3 电子政务电子政务的内容:G2G-政府-政府,G2B-政府对企业,G2C政府对公众,G2E-政府--公务员建立完善的电子政务平台:1.完善以云计算为基础的电子政务公共平台顶层设计 --顶层设计2.全面提升电子政务技术服务能力 --技术服务3.制定电子政务云计算标准规范 --标准规范4.鼓励向云计算模式迁移 --模式迁移1.1.4 企业信息化和“两化“深度融合1.企业信息化战略
循环语句whilefordo whilewhile重点:break是用于永久的终止循环continue跳过本次循环后面的代码,直接去判断部分进行下一次循环的判断练习题 int main() { char password[20] = { 0 }; printf("请输入密码:"); scanf("%s", password); int ch = 0; /*ch = getchar()
什么是语句?C语句可以分为五类:1.表达式语句2.函数调用语句3.控制语句4.复合语句5.空语句控制语句:其中控制语句是用于控制程序的执行流程,实现程序的各种结构方式,由特定的语句定义符组成,C语言有九种控制语句。可以分为以下三类:1.条件判断语句,也叫分支语句:【if、switch】2.循环执行语句:【do while、while、for】3.转向语句:break、goto、continue、r
指针首先明白内存是以byte为单位划分内存单元的,每个内存单元都有一个编号,通过调试监视窗口可以发现内存地址中存放的数据,数据通过编码的形式存放在内存地址单元中。以下代码展示了申明变量,申请内存的过程,通过找到变量的地址来分析变量的内容:int main() { int a = 10; //向内存申请4个字节,存储10 printf("%p\n", &a); // %p【以地址的格
关键字--C语言本身内置的,非个人创建break; //理解为跳出、打断的意思case; //理解为”情况“const; //常属性 常量的意思enum; //枚举struct; //结构体union; //联合体extern;
操作符算术操作符: +, -, *, /, %(取余) / 除号的两端都是整数时执行整数除法,两端有一个浮点数则执行浮点数的除法.以下代码中,"%.2f"表示以浮点数形式打印,取小数点后2位。int main() { float a = 7 / 2.0; printf("%.2f\n", a); r
向上新增一行并跳转:ctrl + Enter向下新增一行并跳转:ctrl + shift + Enter跳到行首:home跳到行尾:end按词移动:Ctrl + →按词移动:Ctrl + ←选中行首到光标之间的代码:shift + home选中行尾到光标之间的代码:shift + end折叠/展开代码:ctrl + m + m [只对函数起作用]调用智能提示:ctrl + j / alt
Git的注册,仓库的创建和基本使用
C语言学习笔记
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号