
单片机
位文杰TOP
男,汉族,1996年6月出生于河南周口
展开
-
STC系列单片机 EEPROM/IAP 功能测试程序演示
STC系列单片机EEPROM/IAP功能测试程序演示 #include "reg51.H"#include "intrins.H"typedef unsigned char INT8U;typedef unsigned int INT16U;sfr IAP_DATA = 0xC2;sfr IAP_ADDRH = 0xC3;sfr IAP_ADDRL = 0xC4;sfr IAP_CMD = 0xC5;sfr IAP_TRIG ...原创 2021-02-03 10:32:59 · 4227 阅读 · 0 评论 -
数控电源
话说最近做了一个数控电源首先原理图来一个 看看原理既然讲到数控电源,难免讲解一下数控电源的知识点,升降压 MOS管,我所做的是BUCK降压电路 一、Buck电路原理图 Buck电路,又称降压电路,其基本特征是DC-DC转换电路,输出电压低于输入电压。输入电流为脉动的,输出电流为连续的二、Buck电路工作原理 当开关管Q1驱动为高电平时,开关管导通,储能电感L1被充磁,流经电感的电流线性增加,同时给电容C1充电,给负载R1提供能量。等效电路如图二 ..原创 2020-09-03 16:45:32 · 18337 阅读 · 3 评论 -
stm32修改堆栈大小(堆栈空间不足导致死机)
1. 设置堆栈空间大小在使用STM32编程时,一般情况下我们不会关注堆栈空间的大小,因为在STM32的启动文件中,已经帮我们预先设置好了堆栈空间的大小。一般默认的启动代码中,Stack栈的大小为:0x400(1024Byte),Heap堆的大小为:0x200(512Byte)。这也是为什么一个基础的工程编译后,RAM的空间也占用了1.6K左右的原因,因为堆栈的空间均分配在RAM中,可在编译的m...原创 2020-04-23 14:06:31 · 26330 阅读 · 2 评论 -
PIC单片机概述
PIC单片机的概述PIC16F616是一款14引脚、8位的CMOS单片机.采用精简指令集,仅有35条指令,由于采用了数据总线和指令总线分离的哈佛总线结构,使得除少量指令不是单周期之外,大部分的指令都是单周期指令.这样有利于提高单片机的运行速度和执行效率.PIC16F616这款单片机供电电压可以在2V到5.5V之间,内部集成了一个RC振荡器,频率可以配置成8MHZ或者4MHZ,也可...原创 2020-03-23 14:06:20 · 10526 阅读 · 0 评论 -
STM32系列修改外部晶振以及代码的修改
STM32系列修改外部晶振以及代码的修改借用原子哥的一句话 很多初学者,用库函数开发STM32的时候不知道如何修改系统主频?不知道如何修改外部晶振频率? 这里,我们针对这两个问题,给大家做一个简单的教程。希望大家能够掌握,以后可以轻松修改主频 8M晶振修改为12M 主频72M不变 STM32F1的固件库,外部晶振频率的定义在stm32f...原创 2020-01-10 14:08:48 · 22080 阅读 · 1 评论 -
利用.bat(批处理)来删除KEIL编译生成的无用文件
新建一个.txt文件.rd /S /Q Project\MDKARM(uV5)\Listings del *.crf /Q /Sdel *.o /Q /Sdel *.d /Q /Sdel *.axf /Q /Sdel *.htm /Q /Sdel *.sct /Q /Sdel *.dep /Q /Sdel *.lst /Q /Sdel *.map ...原创 2020-01-08 15:13:10 · 14259 阅读 · 0 评论 -
STM32的8种GPIO输入输出模式
输入模式-输入浮空(GPIO_Mode_IN_FLOATING)-输入上拉(GPIO_Mode_IPU)-输入下拉(GPIO_Mode_IPD)-模拟输入(GPIO_Mode_AIN)输出模式-开漏输出(GPIO_Mode_Out_OD)-开漏复用功能(GPIO_Mode_AF_OD)-推挽式输出(GPIO_M...转载 2020-01-03 09:31:27 · 14337 阅读 · 0 评论 -
STM32的正交编码器模式读取编码器的角度数据和速度
https://v.youku.com/v_show/id_XNDQ3Mjc0OTQwMA==.html?spm=a2h3j.8428770.3416059.1视频演示编码器接口模式 选择编码器接口模式的方法是:如果计数器只在TI2的边沿计数,则置TIMx_SMCR寄存器中的 SMS=001;如果只在TI1边沿计数,则置SMS=010;如果计数器同时在TI1和TI2边沿计数,则...原创 2019-12-17 16:08:48 · 20586 阅读 · 2 评论 -
STM32读取旋钮编码器
视频演示 #define ROTATE_APAin(2)#define ROTATE_BPAin(3)s16 DATA=0;void EXTI2_IRQHandler(void){if(EXTI_GetITStatus(EXTI_Line2) != RESET){ if(ROTATE_A!=ROTATE_B) { DATA...原创 2019-12-17 11:31:41 · 19013 阅读 · 3 评论 -
stm32使用74HC595和74HC165
stm32使用74HC595和74HC165级联 165 和595十六位输入输出 void main(){while(1){ SENDVAL595=SENDVAL595|0x0000; SENDVAL5952=SENDVAL5952|0x00fF; SENDVAL165_595=SENDVAL165_595|0X0000;/...原创 2019-12-11 18:08:38 · 19914 阅读 · 4 评论 -
STM32串口3 映射和完全重映射 PB10 PB11 PD8 PD9 PC10 PC11
STM32F103共有五个串口,有时候在项目中,其他的引脚已经配置用了,重新改太麻烦STM32串口3 映射和完全重映射 PB10 PB11 PD8 PD9 PC10 PC11所有本次实验 使用了串口3的映射端口,配置和普通的类似只是注意要使用映射使能说明GPIO_PinRemapConfig(GPIO_FullRemap_USART3, ENABLE);...原创 2019-12-11 17:56:59 · 28398 阅读 · 0 评论 -
单片机一键开关机电路
一键开关机电路方案一、先上一个低功耗的一键开关机电路,这个电路的特点在于关机时所有三极管全部截止几乎不耗电。原理很简单: 利用Q10的输出与输入状态相反(非门)特性和电容的电流积累特性。刚上电时Q6和Q10的发射结均被10K电阻短路所以Q6和Q10均截止,此时实测电路耗电流仅为0.1uA,L_out输出高,H_out输出低。此时C3通过R22缓慢充电最终等于VCC电压...原创 2019-12-09 14:03:36 · 21022 阅读 · 1 评论 -
stm32 堆栈的理解
以下引用网上资料 理解堆和栈的区别(1)栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等,其操作方式类似于数据结构中的栈。(2)堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。分配方式类似于数据结构中的链表。(3)全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化...原创 2019-12-02 19:14:20 · 14843 阅读 · 0 评论 -
STM32 单片机的BOOT0 和BOOT1使用注意事项
如图所示,一般情况下如果我们想用用串口下载代码,则必须配置BOOT0为 1, BOOT1为 0,而如果想让 STM32 一按复位键就开始跑代码,则需要配置 BOOT0 为 0,BOOT1 随便设,请参考正点原子的一键下载电路,这个电路比较好,不用繁琐的切换boot电平。原理图:启动方式:1,第一种启动方式是最常用的用户FLASH启动。默认启动方式。2,...原创 2019-11-08 09:30:53 · 55757 阅读 · 0 评论 -
STM32的 PA13/14/15 & PB3/4无法正常使用
PA13/14/15 & PB3/4默认配置为JTAG功能首先,STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些端口设置为普通I/O口。具体方法如下:在GPIO_Configuration(); // 配置使用的 GPIO 口:GPIO_PinRemapConfig(G...原创 2019-10-28 17:13:19 · 14452 阅读 · 0 评论 -
stm8代码生成器 一键配置省了多少麻烦事
另外此软件还带有电阻分压计算 和并联电阻计算生成的代码如下:#include <iostm8s103f3.h>#define uint unsigned int#define uchar unsigned char#define ulong uns...原创 2019-10-17 10:50:30 · 14694 阅读 · 1 评论 -
stm32输出正弦波
本次说明是看野火的开发板学习,做个笔记计算获取正弦波数据表; 2) 根据正弦波数据表的周期内点数和周期计算定时器触发间隔; 3) 初始化 DAC 输出通道,初始化 DAC 工作模式; 4) 配置触发 DAC 用的定时器; 5) 配置 DMA 自动转运正弦波数据表。 配置完成后,即可在 PA4、PA5 引脚中检测到信号输出。 首先生成正弦波数据表 要输出正弦...原创 2019-10-12 15:36:41 · 58195 阅读 · 56 评论 -
flash 模拟eeprom
STM32 的页擦除顺序为: 检查 FLASH_CR 的 LOCK 是否解锁,如果没有则先解锁 检查 FLASH_SR 寄存器的 BSY 位,以确认没有其他正在进行的闪存操作 设置 FLASH_CR 寄存器的 PER 位为’1’ 用 FLASH_AR 寄存器选择要擦除的页 设置 FLASH_CR 寄存器的 STRT 位为’1’ 等待 BSY 位变为’...原创 2019-10-11 11:04:20 · 14216 阅读 · 1 评论 -
STM32驱动十个步进电机
脉冲很正点//stm32驱动步进电机 串口输出控制旋转角度 光电开关检测位置 开机自动归零#include "pwm.h"#include "led.h"#include "usart.h"//TIM1 PWM部分初始化 //高级定时器//PWM输出初始化//arr:自动重装值//psc:时钟预分频数#if 0void TI...原创 2019-09-18 11:18:22 · 17218 阅读 · 20 评论 -
STM32F030F4P6单片机由外部时钟改为内部时钟
static void SetSysClock(void){ __IO uint32_t StartUpCounter = 0, HSEStatus = 0; /* SYSCLK, HCLK, PCLK configuration ----------------------------------------*/ /* Enable HSE */ ...原创 2019-08-12 13:44:02 · 14600 阅读 · 0 评论 -
STM32 IIC OLED中英文显示
简介 ; II2C OLED 中英文显示 ADC数据采集实时显示 八路ADC一 先上代码#include "oled.h"#include "sys.h"#include "delay.h"#include "oledfont.h"#include "delay.h"#include "bmp.h"#include "gbk.h"#de...原创 2019-08-05 16:52:26 · 16506 阅读 · 2 评论 -
ccs6.0 破解版安装教程 Code Composer Studio安装教程
Code Composer Studio安装教程1、首先解压缩,将解压后的exe文件放在英文路径下,中文路径会出现错误,运行exe文件。出现以下界面的时候我们记得选择“是”。2、单击I accept,然后单击next http://www.7down.net/3、接下去是安装路径,我们要记住安装路径不能选择中文的,单击next4、选择你需要的处理器...原创 2019-07-01 14:41:43 · 33662 阅读 · 9 评论 -
stm32配置三个串口 可以三个一块发送和接收数据,还用可以串口1发送串口2和串口3接收到的数据
#include "user_usart.h"#include "stm32f10x_usart.h"/*使用microLib的方法*//*int fputc(int ch, FILE *f){ USART_SendData(USART1, (uint8_t) ch); while (USART_GetFlagStatus(...原创 2019-06-13 19:28:41 · 26249 阅读 · 8 评论 -
单片机串口发送和接受程序
include "config.h"/******************************串口1的波特率********************************///T1作波特率发生器//在波特率加倍情况下 #define BAUD_57600 256 - (OSC_FREQ/192L)/57600L // 254 FF#define BAUD_28800 256 - ...原创 2018-11-03 18:44:51 · 24854 阅读 · 0 评论 -
单片机和三极管的妙用
单片机输出高电平控制LED三极管基极得加限流电阻的,不然有可能烧单片机先我们要了解单片机IO口的两种工作状态,灌电流输入与漏电流输出,也就是我们所说的低电平和高电平8050和8550是配对三极管,8050是NPN极性,8550是PNP极性。所谓配对管,就是主要参数几乎完全相同,但极性却相反的三极管,在某些电路中(比如乙类放大电路)成对使用,因此称为配对管。单...原创 2018-11-03 18:43:17 · 17446 阅读 · 2 评论 -
ESP8266 对接天猫SDK模式
此方法不用烧写固件但是需要多用一块单片机用单片机给esp8266发送数据,本次采用的也是贝壳物联网站的配置和添加接口看我的上一个博客https://blog.youkuaiyun.com/qq_36958104/article/details/83144303买回来的esp8266模块直接配置的哟AT指令,因此不用我们来刷写固件首先准备一块esp8266和一块单片机测试esp8266的...原创 2018-10-18 13:24:11 · 19809 阅读 · 3 评论 -
esp8266对接天猫精灵 微信控制
首先注册账号采用贝壳物联的服务器添加自己的接口资料下载地址链接:https://pan.baidu.com/s/13TWrygx8w6r6llGWlS3kQg提取码:IH23链接:https://pan.baidu.com/s/11irBUU56Ck_qceQNSJkNMw提取码:llal相关的修改在脚本程序里修改你自己的设备ID用乐鑫固件关...原创 2018-10-18 12:03:02 · 41735 阅读 · 7 评论 -
关于单片机定义子函数的返回值问题
int my_strlen(char *string){ int len = 0; while (*string != '\0') { string++; len++; } return len;}const char *my_strstr(const char *str, const char *sub_str){ ...原创 2018-07-22 11:35:09 · 24155 阅读 · 0 评论 -
基于单片机的串口接收程序
#include "config.h"/******************************串口1的波特率********************************///T1作波特率发生器//在波特率加倍情况下#define BAUD_57600 256 - (OSC_FREQ/192L)/57600L // 254 FF#defin...原创 2018-07-20 20:46:19 · 21813 阅读 · 0 评论 -
STM32F4中GPIO_PuPd寄存器为什么设置上拉与下拉其原因是什么
STM32F4中GPIO_PuPd寄存器设置上拉与下拉问题首先 上下拉 是给IO一个默认的状态 比如控制EN的话,那么高有效的我们就下拉,低有效的话我们就上拉而 很多IO 由于CMOS工艺问题会出现float的现象,所以不能悬空 需要PU PD。上拉和下拉是指GPIO输出高电位(上拉)还是低电位(下拉)。上拉就是输入高电平,然后接一个上拉电阻(起保护作用),知道上拉就表示...转载 2019-06-26 17:17:26 · 17721 阅读 · 2 评论 -
stm32的引脚配置
最近有新手问我,什么串口2 串口3 都是那个引脚 以及PWM配置那个引脚 通道选择哪一个、先简单的描述一下PWM //设置该引脚为复用输出功能,输出TIM3 CH2的PWM脉冲波形 GPIOB.5 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //TIM_CH2//设置该引脚为复用输出功能,输出 TIM1 CH1 的 PWM...原创 2019-07-02 11:13:03 · 22245 阅读 · 0 评论 -
简述STM32 CAN总线的设置
简述CAN总线最近公司开发CAN总线项目,以前也学习了,没有实际的用于项目制作,现在具体的总结一下,也是借鉴了很多大神的资料,站在巨人的肩膀之上写下来这篇文章CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信 协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种 各样的电子控制...原创 2019-07-26 15:25:13 · 16090 阅读 · 0 评论 -
单片机一键开关机电路,多种方案可供选择,有纯硬件的也有软硬结合的
一键开关机电路方案一、先上一个低功耗的一键开关机电路,这个电路的特点在于关机时所有三极管全部截止几乎不耗电。原理很简单: 利用Q10的输出与输入状态相反(非门)特性和电容的电流积累特性。刚上电时Q6和Q10的发射结均被10K电阻短路所以Q6和Q10均截止,此时实测电路耗电流仅为0.1uA,L_out输出高,H_out输出低。此时C3通过R22缓慢充电最终等于VCC电压...原创 2019-07-26 14:25:35 · 16639 阅读 · 0 评论 -
单片机一键开关机电路,多种方案可供选择,有纯硬件的也有软硬结合的
一键开关机电路方案一、先上一个低功耗的一键开关机电路,这个电路的特点在于关机时所有三极管全部截止几乎不耗电。原理很简单: 利用Q10的输出与输入状态相反(非门)特性和电容的电流积累特性。刚上电时Q6和Q10的发射结均被10K电阻短路所以Q6和Q10均截止,此时实测电路耗电流仅为0.1uA,L_out输出高,H_out输出低。此时C3通过R22缓慢充电最终等于VCC电压...原创 2019-12-09 14:02:32 · 14579 阅读 · 1 评论 -
单片机一键开关机电路,多种方案可供选择,有纯硬件的也有软硬结合的
一键开关机电路方案一、先上一个低功耗的一键开关机电路,这个电路的特点在于关机时所有三极管全部截止几乎不耗电。原理很简单: 利用Q10的输出与输入状态相反(非门)特性和电容的电流积累特性。刚上电时Q6和Q10的发射结均被10K电阻短路所以Q6和Q10均截止,此时实测电路耗电流仅为0.1uA,L_out输出高,H_out输出低。此时C3通过R22缓慢充电最终等于VCC电压...原创 2019-07-26 10:13:46 · 25746 阅读 · 3 评论 -
STM32八路ADC采用DMA方式
STM32八路ADC采用DMA方式采集的数据如下程序打包地址 有DMA方式和非DMA 方式https://download.youkuaiyun.com/download/qq_36958104/11352188 /* Enable DMA channel1 */ DMA_Cmd(DMA1_Channel1, ENABLE); //使能DMA通道 RCC_AP...原创 2019-07-12 20:29:50 · 19063 阅读 · 3 评论 -
STM32五个串口同时收发函数配置
#include "user_usart.h"#include "stm32f10x_usart.h"/*使用microLib的方法*/ /* int fputc(int ch, FILE *f){ USART_SendData(USART1, (uint8_t) ch); while (USART_GetFlagStatus(USART1, USART_FLAG_TC...原创 2019-07-03 16:27:23 · 17144 阅读 · 2 评论 -
STM32F1系列之常用外设说明
1、RCC相关:APB2启动时钟项:RCC_APB2Periph_AFIO, RCC_APB2Periph_GPIOA, RCC_APB2Periph_GPIOB, RCC_APB2Periph_GPIOC, RCC_APB2Periph_GPIOD, RCC_APB2Periph_GPIOE, RCC_APB2Peri...原创 2019-07-03 09:29:34 · 15796 阅读 · 0 评论 -
STM32 多个定时器 多路PWM配置
实验过程中的笔记 在持续更新中 只是一个简化版本利用定时器1 2 3 4 配置的PWM输出高级定时器的 PWM 输出,与普通定时器稍有区别,必须通过函数 TIM_CtrlPWMOutputs 来设置 BDTR 寄存器 的 MOE 位为 1,才可以正常输出 PWM,PWM输出注意外部接入的高电平还是低电平 注意修改 TIM_OCInitStruct...原创 2019-07-02 16:37:24 · 21658 阅读 · 4 评论 -
单片机和三极管以及继电器的那点事
原创 2018-07-25 18:04:55 · 22814 阅读 · 0 评论