- 博客(15)
- 收藏
- 关注
原创 STM32入门基础篇(十五)
十五)CAN通信1.简介控制器局域网络(Controller Area Network),简称*CAN*。通信只具有两根线,分别是 CAN_H 和 CAN_L,CAN控制器根据这两根线上的电位差来判断总线电平。总线电平分为显性电平和阴性电平,二者必居其一。特点:多主控制系统的柔软性通信速度快,通信距离远具有错误检测、错误通知和错误恢复功能具有故障封闭功能连接节点多2.通信介绍2.1.CAN报文帧结构——5种类型的帧注:一般采用最广泛的是数据帧,其次是遥控帧,
2021-11-06 14:05:11 1243
原创 STM32入门基础篇(十四)
十四)输入捕获STM32F4除了基本定时器TIM6和TIM7以外,其他定时器都具有输入捕获功能。1.用途输入捕获模式可以用来测量脉冲宽度或者测量频率。2.使用方法通过定时器的通道,对输入电平进行边沿信号的检测,在边沿信号发生跳变时,将当前定时器的值(TIMx_CNT)存放到对应的通道的捕获/比较寄存器(TIMx_CRRx)里面,完成一次捕获。读取和数据处理的过程可以放在因跳变沿信号触发的中断中保存。跳变沿信号包括:上升沿、下降沿以及双边沿。3.工作原理图定时器的通道通
2021-11-06 13:46:43 345
原创 STM32入门基础篇(十三)
(十三)看门狗(13.1)独立看门狗1.用途与窗口看门狗一样,均可用于检测并解决由软件错误导致的故障。2.使用方法独立看门狗是一种12位递减计数器,当激活看门狗后,计数发生:当数值计为0时,系统就会产生一次复位;当在计为0前重装载计数值,系统就不会复位。重装载计数值的过程称之为——“喂狗”。VDD电压域供电,在停止模式和待机模式下仍然能够工作。注:电压域名称功能名称功能VCC电路的供电正电压VDDD芯片的工作数字正电压GND电
2021-11-06 13:44:29 277
原创 STM32入门基础篇(十二)
(十二)printf 与重定向1.释义printf函数默认输出设备是显示器,如果要实现在串口或者LCD上显示,必须重定义标准库函数里调用的与输出设备相关的函数。比如使用printf输出到串口,需要将fputc里面的输出指向串口,这一过程就叫重定向。2.应用方法fputc 函数标注库(STD库)使用程序如下:int fputc(int ch,FILE *p) //函数默认的,在使用printf函数时自动调用{ USART_SendData(USART1,(u8)ch); //串口号应注意
2021-11-03 09:38:34 1409
原创 STM32入门基础篇(十一)
十一)串口通信1.通信基本知识1.1.按数据的传送方式串行通信串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。并行通信并行通信通常是将数据字节的各位用多条数据线同时进行传送,通常是8位、16位、32位等数据一起传输。特点:控制简单、传输速度快;由于传输
2021-11-03 09:31:33 368
原创 STM32入门基础篇(十)
(十)PWM1.STM32中的PWM除了基本定时器TIM6和TIM7,其他定时器都可以产生PWM输出高级定时器TIM1和TIM8可以同时产生多达7路的PWM输出通用定时器也能同时产生多达4路的PWM输出(TIM9~TIM14最多能产生2路)PWM的输出其实就是对外输出脉宽可调(即占空比调节)的方波信号信号频率是由自动重装寄存器 ARR 的值决定,占空比由比较寄存器 CCR 的值决定。PWM输出比较模式总共有8种,具体由寄存器CCMRx 的位OCxM[2:0]配置。最常用
2021-11-03 09:26:39 343
原创 STM32入门基础篇(九)
(九)定时器1.分类基本定时器:TIM6、TIM7通用定时器:TIM2-5、TIM9-TIM14高级定时器:TIM1、TIM81.1.通用定时器STM32F4的通用定时器包含一个 16 位或 32 位自动重载计数器(CNT),该计数器由可编程预分频器(PSC)驱动。通用定时器具有如下功能:16位/32位向上、向下、向上/向下自动装载计数器(TIMx_CNT)注:仅TIM2和TIM5是32位(在设置period参数时应选用u32类型的);TIM9~TIM4只支持向上(递增)计
2021-11-03 09:19:37 414
原创 STM32入门基础篇(八)
(八)中断系统1.中断介绍(中文参考手册)1.1.中断CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。引发中断的称为中断源。有些中断还能够被其他高优先级的中断所中断,那么这种情况又叫做中断的嵌套。1.2.嵌套向量中断控制器(NVIC)中断控制相关的寄存器在固件库core_cm4.h文件NVIC结构体内type
2021-11-03 09:18:12 403
原创 STM32入门基础篇(七)
(七)按键1.关键——延时消抖使用软件消抖的方法:一般来说一个简单的按键消抖就是先读取按键的状态,如果得到按键按下之后,延时10ms,再次读取按键的状态,如果按键还是按下状态,那么说明按键已经按下。2.编程操作建立“key.h”和“key.c”文件“key.h”的程序编写#ifndef _key_H#define _key_H#include "stm32f4xx.h"#define Key_UP_Pin GPIO_Pin_0#define Key_LEFT_Pin GP
2021-11-03 09:14:30 199
原创 STM32入门基础篇(六)
(六)蜂鸣器1.介绍1.1.分类压电式蜂鸣器(无源):输出1.5~5kHz的音频信号,无振荡器。电磁式蜂鸣器(有源):周期性振动发生,有振荡器。注:开发板使用的是有源蜂鸣器。1.2.使用改变单片机引脚输出的波形的频率就可以控制蜂鸣器的音调。注:一次高低电平的时间总和是一个周期,调整周期长度就可以改变频率从而控制音调。改变输出高低电平的占空比就可以控制蜂鸣器的声音大小1.3.电路使用三极管(低电平导通),用单片机引脚控制三极管内部电路的通断。原因:蜂鸣器使用时所需电
2021-11-03 09:12:50 261
原创 STM32入门基础篇(五)
(五)SysTick系统定时器1.SysTick(滴答)定时器1.1.基本介绍被嵌入在***NVIC***中断管理系统之中;是一个24位向下递减的定时器;计数一次的时间为1/SYSTICK;是系统定时器时钟,可以直接取自系统时钟,也可以通过系统时钟8分频后获取;当定时器计数到0时,将从LOAD寄存器中自动装载定时器初值,重新向下递减计数;如果开启***SysTick***中断的话,当定时器计数到0时,将产生一个中断信号。1.2.SysTick定时器寄存器可在core_cm4.h中查看
2021-11-01 20:37:02 409
原创 STM32入门基础篇(四)
(四)位带操作1.位带操作原理STM32将每个比特位膨胀成为32字,访问这些字就实现了访问位带别名区。膨胀的新地址使用的是未使用的Reserved区域。Bit band alias 位带别名区,大小为2000000;Bit band region 位带区域,大小为100000。二者之间呈32倍关系。注:1字节(Byte)=8位(bit);位带区的1位经过膨胀后在位带别名区变为32位(即4Byte)。1.1.STM32位带及位带别名区域支持位带操作的区域是 SRAM区的最低1MB范
2021-11-01 20:34:06 415
原创 STM32入门基础篇(三)
(三)系统时钟注:本文以STM32F407ZGT6为例编写。1.各时钟频率大小SYSCLK(系统时钟) 168MHz***AHB***总线时钟(HCLK) 168MHz***APB1***总线时钟(PCLK1) 42MHz***APB2***总线时钟(PCLK2) 84MHz***PLL***主时钟 168MHz2.时钟配置函数2.1.时钟使能配置函数RC
2021-08-30 14:48:16 493
原创 STM32入门基础篇(二)
(二)GPIO操作1.GPIO库函数1.1.GPIO外设的库文件stm32f4xx_gpio.c、stm32f4xx_gpio.h1.2.所用的库函数初始化函数void GPIO_Init(GPIO_TypeDef* GPIOx,GPIO_InitTypeDef* GPIO_InitStruct)用于初始化一个或多个IO口(同一组端口)的工作模式、输出速度、输出类型、上下拉模式,即GPIO的4个配置寄存器。管脚电平设置函数高低电平设置函数:此函数用于main.c文件的main函数
2021-08-30 14:46:22 451
原创 STM32入门基础篇(一)
(一)GPIO1.GPIO通用输入输出端口的简称。2.STM32的引脚分类电源管脚(VDD\VSS\VREF)晶振管脚(PH0\PH1)复位管脚(NRST)下载管脚BOOT管脚(下载模式切换,boot0、boot1)GPIO管脚STM32F407ZGT6数据手册中P44查看管脚功能3.GPIO的基本结构3.1.推挽和开漏(1)推挽输出输出控制为1或0时分别使P-MOS和N-MOS切换导通和关闭的状态,从而实现GPIO输出高低电平(3.3V和0V)的功
2021-08-30 14:43:55 753
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人