
stm32程序
灯神小王
记录下平时的学习。如果错误,请多指教。
展开
-
步进电机 步进电机驱动器
步进电机步进电动机也叫脉冲电机。步进电机无法直接接到直流或交流电源上工作,必须使用专用的驱动电源步进电机驱动器。步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器。步进电机相比于其他电机的区别是,可以将接收到的数字控制信号电脉冲信号转化角位移或线位移。...原创 2020-02-07 15:48:01 · 2903 阅读 · 1 评论 -
漫反射式光电开关
光电开关是光电接近开关的简称,它是利用被检测物对光束的遮挡或反射,由同步回路接通电路,从而检测物体的有无。物体不限于金属,所有能反射光线(或者对光线有遮挡作用)的物体均可以被检测。光电开关将输入电流在发射器上转换为光信号射出,接收器再根据接收到的光线的强弱或有无对目标物体进行探测。光电开关正负极给电,输出端out也带电。光电开关由发射器、接收器和检测电路三部分组成;内有光敏三极管、发光二极管...原创 2019-12-09 20:49:40 · 6300 阅读 · 0 评论 -
光电开关-继电器-单片机的连接图
通过遮挡光电开关,达到实现控制LED亮灭的功能。继电器起到了把LED所在回路闭合的功能(类似开关功能)。当把LED换成电机,即可实现电机运行所设置的时间后断开回路等。光电开关的信号输出端可以连在IN1或者DC-。当连接IN1时,遮挡光电开关,继电器工作(低电平触发);不遮挡光电开关,继电器不工作(全为高电平)。当连接DC-时,继电器一直工作,信号端只给信号。 (可能有错误)...原创 2019-12-09 20:17:03 · 5836 阅读 · 0 评论 -
STM32 PWM输出实验
①timer.h:#ifndef tim_h#define tim_h#include “sys.h”void tim_int_init(u16 arr, u16 psc);void tim3_pwm_init(u16 arr, u16 psc);#endif②timer.c:#include “tim.h”#include “led.h”#include “usart.h”...原创 2019-08-29 19:35:12 · 569 阅读 · 0 评论 -
硬件复位、软件复位、上电复位
硬件复位:顾名思义通过硬件给系统一个复位,比如在电路板上设计一复位电路, 通过按下按键就可以给系统实现一个复位,而无论系统在执行什么样的程序。复位启动以后需要重新加载加载FPGA、DSP等,也有可能在这个操作之前初始化CPU,加载系统文件等操作,具体视需要而定,然后初始化一些配置芯片。硬件复位的作用区域一般是全局的。软件复位:通过软件给系统一个复位信号,如低电平或许是高电...原创 2019-08-29 19:34:17 · 6516 阅读 · 1 评论 -
STM32 串口通信
#include “stm32f10x.h”void usart1_init(void){GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph...原创 2019-10-07 12:05:45 · 305 阅读 · 0 评论 -
基于L298N的STM32的直流电机PWM调速控制 原理及注意事项
原理:利用STM32 的IO输出不同占空比的脉冲信号来达到调速的过程,当占空比大的时候就表明在一个脉冲周期内高电平的时间越长,而脉冲信号输出频率极快,高电平的时间越长就表明在一段时间内IO口输出的控制电压越高,控制电压越高使得L298N输出的电压越高,这样就使得车轮的转速越快。通过实验发现,可能是一个定时器控制两个IO口,所以用了TIM2与TIM3两个定时器控制两个电机。连接L298N时,L2...原创 2019-08-29 19:34:27 · 6054 阅读 · 0 评论 -
STM32 电机驱动
通过实验发现,在一个TIMX_PWM_Init()函数中只有两个IO口可以用来驱动电机,不可以用四个IO口。也就是说一个函数只能驱动一个电机(两个口)。这样的话,驱动四个电机就需要写四个大致相同的函数。(可能是)另外,PWM驱动电机不需要中断。① timer.h:#ifndef __TIMER_H#define __TIMER_H#include “sys.h”void TIM3_PW...原创 2019-08-29 21:27:37 · 14324 阅读 · 6 评论 -
stm32蜂鸣器程序
①beep.h:#ifndef beep_h#define beep_h#include “sys.h”#define beep PBout(8)void beep_init(void);#endif②beep.c:#include “beep.h”#include “stm32f10x.h”void beep_init(){GPIO_InitTypeDef GPIO...原创 2019-10-07 12:07:46 · 3511 阅读 · 3 评论 -
STM32 独立看门狗
①iwdg.h:#ifndef iwdg_h#define iwdg_h#include"sys.h"void iwdg_init(u8 prer,u16 rlr);#endif②iwdg.c:#include “iwdg.h”#include “sys.h”void iwdg_init(u8 prer,u16 rlr){IWDG_WriteAccessCmd(IWDG_Wr...原创 2019-10-07 12:07:21 · 188 阅读 · 0 评论 -
STM32 窗口看门狗
①wwdg.h:#ifndef wwdg_h#define wwdg_h#include “sys.h”void iwdg_init(u8 prer,u16 rlr);void iwdg_feed(void);void wwdg_init(u8 tr,u8 wr, u32 fprer);//初始化wwdgvoid wwdg_setcounter(u8 cnt); //设置wwdg的计...原创 2019-10-07 12:06:44 · 298 阅读 · 0 评论 -
stm32跑马灯程序
①led.h:#ifndef led_h#define led_hvoid led_init(void);#endif②led.c:#include"led.h"#include"stm32f10x.h"void led_init(){GPIO_InitTypeDef GPIO_InitStructure; //结构体;RCC_APB2PeriphClockCm...原创 2019-10-07 12:07:36 · 1793 阅读 · 0 评论 -
STM32 定时器中断实验
① tim.h:#ifndef tim_h#define tim_h#include “sys.h”void tim_int_init(u16 arr, u16 psc);#endif② tim.c:#include “tim.h”#include “led.h”void tim_int_init(u16 arr, u16 psc){TIM_TimeBaseInitTypeD...原创 2019-10-07 12:06:18 · 1033 阅读 · 1 评论 -
stm32按键输入实验
①key.h:#ifndef key_h#define key_h#include “sys.h” //位操作需要的头文件#define key0 PEin(4)#define key1 PEin(3) //位操作 库函数为:GPIO_ReadInputDataBit();#define key2 PEin(2)#define wk_up PAin(0)...原创 2019-10-07 12:04:57 · 771 阅读 · 0 评论