STM32F407VGT6精确脉冲控制步进电机源码,采用STM32F407VGT6芯片,抛弃单脉冲输出方式,直接使用普通PWM输出方式精确输出脉冲个数,每个脉冲都可以改变频率和占空比。PWM+中断,简单粗暴。#include "sys.h"#include "delay.h"#include "pwm1.h"#include "pwm2.h"#include "pwm3.h"//注释见pwm1.c文件extern int count2;int main(void){ delay_init(168); //初始化延时函数 TIM2_Init(1,167); TIM3_Init(1,167); TIM5_Init(1,167); // delay_ms(1000); TIM2_OUTPUT(); TIM3_OUTPUT(); TIM5_OUTPUT(); while(1) { //TIM2每次输出完10个脉冲后间隔100ms再次输出 if(count2 >= 10){ delay_ms(100); TIM2_OUTPUT(); } }
标签: stm32f407vgt6 脉冲控制 步进电机
上传时间: 2021-10-26
上传用户:xsr1983
常用总线的雷电防护及静电保护方案,包括220V电源保护方案,RJ45保护方案,CAN保护方案,插件RS485保护方案,贴片RS485保护方案,,插件RS232保护方案,贴片RS232保护方案,应用范围: 1.工业控制,DCS,数据采集系。 2.电力系统采集与控制系统。 3.远程终端
上传时间: 2021-12-02
上传用户:
使用PSIM学习电力电子技术基础,仿真软件经典参考书籍
上传时间: 2021-12-02
上传用户:
EP4CE10 cyclone4 FPGA开发板PDF原理图+ALTIUM原理图库PCB封装库+器件技术手册资料74HC595.pdfAD9280.pdfAD9708.pdfAP3216C.pdfdht11-v1_3说明书(详细版).pdfDS18B20.pdfDVI V1.0.pdfHDMI Specification 13a.pdfHS0038B.pdfLAN8720A.pdfm24c64-r.pdfM25P16 datasheet.pdfMAX3232CSE.PDFmax3483-max3491.pdfPart1_Physical_Layer_Simplified_Specification_Ver7.10.pdfPCF8563.pdfPCF8591.pdfThumbs.dbug_altddio.pdfVESA VGA时序标准.pdfw25q16_datasheet.pdfw9825g6kh_a04.pdfwm8978.pdfxapp495_S6TMDS_Video_Interface.pdf硬件PCB封装库列表:32153225AP3216CBUZZERC0603CAP100CON_2PINCON_RA_HDMI_19P_0P5_SMCR1220D1206DB9-FDB15_VGA_S_FDIP-2X4-2P54DIP-2X10_2P54DIP-2X20_2P54DO214EAR_JACKEC6P3F0805FBGA256FJ3661FPC-40S-0P5SVHDR102JACK-2_5MM_BJTAG_5X2_2P54_RL1040L2520LED0603MIC_6X2_2PH-1X2-2P0QFN24QFN32R0603R0805RJ45RM065-V1SIP3-2P54SIP4-2P54SIP6-2P54SMCSOD323SOD523SOIC8-208SOIC8ESOIC16SOIC16W_1R27_10R3X10R33SOP8SOT23SOT23_S6SOT23-6SW4_PB_ESW_SM_P177SWITCH_DDSZT4R2-6R2_BOTSMTT4R2-6R2_TOPSMTTFCARDTSOP54TSOT-23-5TSSOP16TYPE-C-31-M-12WF_PADXTAL_SMDXTAL-DIP
上传时间: 2021-12-04
上传用户:
W5500数据手册,用于设计网口电路参考
上传时间: 2021-12-08
上传用户:
STM32F429_F746_F767核心板+开发底板AD+PADS格式(原理图库+PCB封装库):核心板原理图库:Library Component Count : 28Name Description----------------------------------------------------------------------------------------------------2X28PIN_DIP3.0MM 40P-FPC-0.5BAT54CCJA1117B-3.3CRYSTAL_25MHZ_3225 C_0.1UF_0402 C_0.1UF_0603 C_10P_0402 C_10UF_0603 C_2.2UF_0402C_22P_0402 GZ1005D601TF IS42S16400J KEY_3X6 LED_BLUE_0603 LED_RED_0603 NC R_0R_0402 R_10K_0402R_1K_0402 R_2.2K_0402R_33R_0402STM32F767IGT6 USB_MICRO_DIP W25Q128FVSGXH2.54-5P XTAL_32.768KHZ核心板PCB库:Component Count : 18Component Name-----------------------------------------------2X28X2.54MM3.0MM_4.540P-FPC-0.532153225C_0603C_1206LED_0603LQFP176MICRO_USB_5SSC0402SOT-23SOT-89-3LSR0402SW3$2F$6-SMDTSOP-54W25Q128XH2.54-5P_NS开发板封装库:Component Count : 52Component Name-----------------------------------------------1_DIP1X2PIN_SMD2X6P_SMD2X19X2.54MM2X28X2.54MM3.0MM20PIN_2.54_DIP_BOT20PIN-JTAG06031206C3225AVX_B_3528-21BATERYBEEP-9.5X5.5C_0603C_1206CON_2PINDB9DC-005DIODE_SOPDO-214EC_47UF_6.5X6.5EC_220UF_6.5X6.5EMW1062GDCD4532HDR1X3HDR1X4LED_0603LED_RGB_5MMMAX485MAX3232MIC_6X2.2PJ-3001SQFN24QFN24AQFN32R_0603R-3X3R5MMRJ45RT7272SOP8SOP16SOT-23SOT-353SW6.2$2F$6.2-DIPASW13_6TF_CARDTO-252-2LUSB-AF90USB-MINIXTAL_SMD
上传时间: 2021-12-08
上传用户:
IDAQ-8098 控温模块是专为精确控温应用而设计的,采用多 CPU 方案实现采集和 PID 控制分开工 作,采用 Modbus 通信协议,通过 RS-485 通信接口下载控温参数,并实时监测被控温区实时温度、控温 状态和数字量输入输出状态,还可以控制控温的启停等功能。启动控温后,模块能够按照设定的控温参数 自动工作,无须其他设备干预,这样就大大减轻了控制系统的工作负担,提高了整个系统的稳定性和可靠 性。IDAQ-8098 控温模块完全实现系统的温度采集和控制,有效减少了技术部门在该功能上的开发和调试 时间,使产品能够快速占领市场。 ◆ 多 CPU 工作方式,采集热电偶信号和 PID 控制完全分开协同式工作 ◆ 控温方式:增量 PID 加模糊控制,自适应 PID 控制(保存自适应的最佳参数供下次使用) ◆ 8 个控温通道各自独立 PID 控制,对应于 8 个通道的热电偶输入 ◆ PID 采样周期可达 500ms ◆ 控温精度最高能达到±0.5℃ ◆ 五种脉宽输出指示五种控温状态(不控温、加热、恒温、预警和报警) ◆ 可通过 RS-485 串口远程监视工作状态 ◆ 可和 PLC 挂接通讯,组合成最完美最经济最可靠的 IO 控制和被控温区温度控制系统◆ 有效分辨率:16 位 ◆ 通道:8 路差分 ◆ 输入类型:输入类型:热电偶,PT100,0~20mA,0-10V,-20-+20mV,-78-+78mV,-312-+312mV,0-5000mV ◆ 热电偶类型与温度范围: J -200 ~ 1200℃ K -200 ~ 1370℃ T -200 ~ 400℃ E -200 ~ 1000℃ R -50 ~ 1760℃ S -50 ~ 1760℃ B 0 ~ 1820℃ PT100 温度范围:-200 ~ 660℃ ◆ 隔离电压:3000Vdc ◆ 故障与过压保护:最大承受电压±35V ◆ 采样速率:20 采样点/ 秒(总共) ◆ 输入阻抗:20M ◆ 精度:±0.1%( 电压输入) ◆ 零漂移:±3uV/℃
标签: PID温控模块
上传时间: 2021-12-09
上传用户:
简单实用,以简单的视角解决复杂的问题,便于电子爱好者们了解电子电路运作的底层原理,化繁就简。
标签: 电子技术
上传时间: 2021-12-11
上传用户:
STM32F407开发板ALTIUM设计原理图+AD集成封装库文件,Altium Designer 设计的工程文件,包括原理图和未布局布线的PCB文件,可作为你产品设计的参考。集成库器件型号列表如下:Library Component Count : 46Name Description----------------------------------------------------------------------------------------------------1N4106 12V/0.5W稳压管1N4148 高速开关二极管24Cxx 外置EEPROM5向按键 8050-SMD 高频放大-NPN型AMS1117 三端稳压芯片BEEP 蜂鸣器C 无极性贴片电容C-CAP 直插电解电容CR-3V 微型电池DB9 9针串口DP83848IVDS18B20 数字温度计FU 5x20 5*20保险丝HS0038 Header 10X2 10*2P接插件Header 13X2 13*2P接插件Header 18X2 18*2P接插件Header 2 2P接插件Header 2X2 2*2P接插件Header 3X2 3*2P接插件Header 4 4P接插件Header 4X2 4*2P接插件Header 6 6P接插件Header 9X2 9*2P接插件IS62WV51216 JATG L 小功率贴片电感LED-5MM 5mm插件LEDMAX232 MAX232MAX485 MP2359 P-DC 低压电源接口R 贴片电阻RJ45 SDCARD-M TF卡槽SS14 肖特基二极管SSW-2P 2路波动开关STM32F407ZGT6TFTLCD TJA1050 USB OTGUSB-5P 微型USB母座W25Qxx 外置FlashXTALXTAL-2 2脚晶振
上传时间: 2021-12-17
上传用户:zhaiyawei
include<reg52.h> #define uint unsigned int #define uchar unsigned char uint temp,aa,wang,qian,bai,shi,ge; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void display( uint wang,uint qian,uint bai,uint shi,uint ge); void delay(uint z); void init(); void main() { init();//初始化子程序 while(1) { if(aa==20) { aa=0; temp++; if(temp==99999) { temp=0; } wang=temp/10000; qian=(temp-wang*10000)/1000; bai=(temp-wang*10000-qian*1000)/100; shi=(temp-wang*10000-qian*1000-bai*100)/10; ge=temp%10; } display(wang,qian, bai,shi,ge); } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void display(uint wang,uint qian,uint bai,uint shi,uint ge) { dula=1; P0=table[wang]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1); dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1); dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1); dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1); dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); } void init() { wela=0; dula=0; temp=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; } include<reg52.h> #define uint unsigned int #define uchar unsigned char uint temp,aa,wang,qian,bai,shi,ge; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void display( uint wang,uint qian,uint bai,uint shi,uint ge); void delay(uint z); void init(); void main() { init();//初始化子程序 while(1) { if(aa==20) { aa=0; temp++; if(temp==99999) { temp=0; } wang=temp/10000; qian=(temp-wang*10000)/1000; bai=(temp-wang*10000-qian*1000)/100; shi=(temp-wang*10000-qian*1000-bai*100)/10; ge=temp%10; } display(wang,qian, bai,shi,ge); } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void display(uint wang,uint qian,uint bai,uint shi,uint ge) { dula=1; P0=table[wang]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1); dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1); dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1); dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1); dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); } void init() { wela=0; dula=0; temp=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; } include<reg52.h> #define uint unsigned int #define uchar unsigned char uint temp,aa,wang,qian,bai,shi,ge; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void display( uint wang,uint qian,uint bai,uint shi,uint ge); void delay(uint z); void init(); void main() { init();//初始化子程序 while(1) { if(aa==20) { aa=0; temp++; if(temp==99999) { temp=0; } wang=temp/10000; qian=(temp-wang*10000)/1000; bai=(temp-wang*10000-qian*1000)/100; shi=(temp-wang*10000-qian*1000-bai*100)/10; ge=temp%10; } display(wang,qian, bai,shi,ge); } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void display(uint wang,uint qian,uint bai,uint shi,uint ge) { dula=1; P0=table[wang]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1); dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1); dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1); dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1); dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); } void init() { wela=0; dula=0; temp=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; }
标签: 矩阵式键盘
上传时间: 2021-12-18
上传用户:2590813506