单片机及硬件相关
单片机主要STM32吧,一些源码存放于此。
PCB画板成果分享也在这。
Abby_QI
研二在读,实习中...电力电子方向,梦想是控制算法工程师!
展开
-
FPC软排线结构的奥秘
疫情在家无聊,拆个FPC软排线看看。原创 2022-04-14 20:10:22 · 1042 阅读 · 0 评论 -
STM32定时器中断影响主程序PWM输出[附解决方案]
我通过TIMER1输出四路PWM控制电机,通过TIMER2产生10ms定时器中断进行OLED菜单的操作。程序如下:int main(void){ delay_init(); //延时函数初始化 //NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2 //uart_init(115200); //串口与TIMER1撞车 TIM1_PWM_Init(7199,0); //越大越快 Motor_原创 2022-04-05 16:12:32 · 5201 阅读 · 2 评论 -
K210车牌归属地识别[获取图像+训练+识别效果演示]
首先就是最繁琐的取图片环节了,我这里仅仅以七种归属地为例:放几张图就行了,不然显得文章太长了。还有一点就是这些字要取的足够多,K210官方要求分类类别的要大于40张。各位自己努力吧!然后就是图片的重命名和图像的Resize了。这里给两个python的代码,直接拖到pycharm,改一下文件地址就能运行:重命名:import os,sysfrom PIL import Imageclass BatchRename(): def __init__(self): s原创 2022-03-31 13:17:44 · 3717 阅读 · 1 评论 -
嵌入式C语言中调用其他文件定义的结构体数组[以Keil-5为例]
首先我们在Timer2_Int.h文件中定义结构体数组:#ifndef __TIMER2_INT_H_#define __TIMER2_INT_H_#include "sys.h"struct parking_car_obj{ u8 ID[16]; //车牌号 u8 IsInParing; //是否进入 u16 ParkingMin; //停车时长};void TIM2_Int_Init(u16 arr,u16 psc);#endif然后我们在Timer2_Int原创 2022-03-30 17:05:00 · 4139 阅读 · 1 评论 -
STM32F103与AB相编码器采用外部中断测脉冲换算距离问题
这是AB相编码器输出的波形笔者原来相单通过A或者B的脉冲来计算脉冲,实验过程发现一个问题:就是无论你得编码器正反转,你得脉冲值都会增加,于是我通过研究以上波形,解决这一问题。思路就是,A相接外部中断,B相随便接一个IO口,当A相进入中断时,通过检测A,B两个IO口的电池是否相同,来判断是否是单向旋转,这样就可以避免相反转时引发的误差了中断配置代码如下:A相接PC5,B相接PC4,打印输出a的值即可。#include "exti.h"#include "led.h"#include "key.h原创 2022-03-26 00:24:25 · 1846 阅读 · 1 评论 -
STM32的FLASH模拟 EEPROM[以STM32F103C8为例]
提前排坑:地址范围问题代码参照的原子系列的教程,程序功能是可以存储两个菜单设置参数和三个PID参数。main.c代码如下:#include "stdlib.h"#include "stm32f10x.h"#include "delay.h"#include "key.h"#include "sys.h"#include "oled.h"#include "adc.h"#include "usart.h"#include "stmflash.h" #include "timer原创 2022-03-23 02:02:08 · 2362 阅读 · 0 评论 -
赛元单片机SC92F732x系列eeprom读写操作[以7321为例]
先放效果图:第一次读写:断电后,将写入程序删掉,再上电:代码部分:首先本代码依据赛元官方DEMO代码所作修改,官方地址:赛元芯片官方DEMOmain函数部分#include "H/Function_Init.H"#include "stdio.h"/**************************************************************说明:1、Options for Target‘Target1’:BL51 Locate->Code Rang原创 2021-12-25 13:53:13 · 2035 阅读 · 0 评论 -
赛元单片机SC92F732x系列printf函数构造[以7321为例]
先放效果图:再放代码部分:首先本代码依据赛元官方DEMO代码所作修改,官方地址:赛元芯片官方DEMO我所修改“”Uart_Init.c部分:#include "H/Function_Init.H" #include "stdio.h"bit UartSendFlag = 0; //发送中断标志位bit UartReceiveFlag = 0; //接收中断标志位char putchar(char c)//重定向{ UartSendBit(c); return c;}/*原创 2021-12-25 13:22:22 · 1710 阅读 · 0 评论 -
STM32摄像头实验相关源码分享[二值化]
我只是一个无情的硬盘代码搬运工~我的电脑里资源好多呀,都是当年熬夜在实验室不要命的搞的。想想当时,真的努力啊!现在也不差!!!就是想开学,想我的实验室…看看文件夹吧:其他就不一一发了,文件夹太多,慢慢分享吧!...原创 2020-04-09 00:13:52 · 669 阅读 · 0 评论 -
[STC系列单片机/51单片机]软件延时计算方法详解
选取12M晶振时,时钟周期为(1 / 12) us,且假如单片机工作在12T模式下,则一个机器周期为12 * (1 / 12) = 1 us。为表述方便,下文均用T_M表示机器周期,观察KEIL仿真运行时间具体如下:进入Delay函数前运行时间为T_1 = 0.000601s子程序调用过程T= 0.000002us = 2 * T_M立即数1000送字节S操作T= 0.000002...原创 2020-04-27 08:59:55 · 5325 阅读 · 1 评论 -
[Altium Designer 17]PCB学习过程记录(二)
51单片机最小系统绘制过程及结果:原创 2020-04-24 00:25:38 · 186 阅读 · 0 评论 -
[Altium Designer 17]PCB学习过程记录(一)
先分享一些自己总结的好用的快捷键:已有库的情况下:先建立工程文件PCB_Project,然后添加SchLib和PcbLib到工程,最后建立原理图和PCB图文件即可。需要别的库时,将其拖入自己已有库中,选择复制粘贴到自己库中即可。>鼠标按住不放空格旋转>设置板原点:E-O-S>画任意形状新板:P-K-T>将画的设置为新板:选中 D-S-D>原理图对应PC...原创 2020-04-24 00:23:53 · 413 阅读 · 0 评论 -
IIC与SPI理解
IIC vs SPI现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求制定了这两种标准通信协议。IIC 开发于1982年,当...原创 2020-04-17 23:25:41 · 227 阅读 · 0 评论 -
“平衡小车之家”家的STM32F103最小系统源代码分享
在网上寻找了好久,因为他家的开发板自带有mpu6050模块故想测试其精准度以及z轴漂移程度发现也有很大的漂移带原创 2020-03-19 15:54:56 · 3216 阅读 · 0 评论 -
STM32摄像头实验相关源码分享[一、颜色识别]
在原子哥摄像头实验基础上做了更改。color.c部分[用于设定颜色值、匹配颜色等]:#include "color.h"#include "sys.h"#include "lcd.h"#include <stdio.h>RESULT result;TARGET_CONDITION condition={ 60, //目标最小色度,H_MIN 110, ...原创 2020-04-09 00:02:15 · 3565 阅读 · 7 评论