当前位置: 首页 > news >正文

STM32F103驱动无刷直流电机应用思路

一、STM32F103驱动无刷直流电机基本思路
无刷电机控制是基于6步换相法如下图所示:
在这里插入图片描述
二、STM32F103驱动无刷直流电机方法介绍
通常我们用的方法是使用高级定时器3通道互补输出去驱动mos管,用通用定时器连接霍尔传感器去触发中断,在中断中换相,基本原理如下图所示:
在这里插入图片描述
三、驱动代码编写

/**********************************************************************
* Description    : None
* Input          : None
* Output         : None
* Return         : None
* Attention      : None
**********************************************************************/
void BLDC_GPIOConfig(void)
{GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;  //TIM1输出GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;						   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;//TIM1输出GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;						   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;              //TIM3的霍尔输入GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;                         //TIM3的霍尔输入GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIOB, &GPIO_InitStructure);   
}
/**********************************************************************
* Description    : None
* Input          : None
* Output         : None
* Return         : None
* Attention      : None
**********************************************************************/
void BLDC_TIM1Config(void)
{TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;			   //基本结构体变量定义TIM_OCInitTypeDef  TIM_OCInitStructure;                     //输出结构体变量定义TIM_BDTRInitTypeDef  TIM_BDTRInitStructure;				   //死区刹车结构体变量定义TIM_DeInit(TIM1);TIM_TimeBaseStructure.TIM_Prescaler = 2;					   //TIM基本初始化TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_CenterAligned2;//中央对齐计数模式TIM_TimeBaseStructure.TIM_Period = 1499;					   //PWM 16KTIM_TimeBaseStructure.TIM_ClockDivision = 0;TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; 		   //TIM输出通道初始化TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Disable; TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;                  TIM_OCInitStructure.TIM_Pulse =1200; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;         TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;          TIM_OC1Init(TIM1,&TIM_OCInitStructure); TIM_OCInitStructure.TIM_Pulse =1200;TIM_OC2Init(TIM1,&TIM_OCInitStructure);TIM_OCInitStructure.TIM_Pulse =1200;TIM_OC3Init(TIM1,&TIM_OCInitStructure);TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; 		   //TIM输出通道4初始化,用来触发AD注入采样TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Disable;                   TIM_OCInitStructure.TIM_Pulse =1495; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;           TIM_OC4Init(TIM1,&TIM_OCInitStructure); TIM_BDTRInitStructure.TIM_OSSRState = TIM_OSSRState_Enable;	//死区刹车初始化TIM_BDTRInitStructure.TIM_OSSIState = TIM_OSSIState_Enable;TIM_BDTRInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_OFF; TIM_BDTRInitStructure.TIM_DeadTime = 100;TIM_BDTRInitStructure.TIM_Break = TIM_Break_Disable;	 //如打开,开机无输出且状态紊乱????TIM_BDTRInitStructure.TIM_BreakPolarity = TIM_BreakPolarity_Low;TIM_BDTRInitStructure.TIM_AutomaticOutput = TIM_AutomaticOutput_Disable;TIM_BDTRConfig(TIM1,&TIM_BDTRInitStructure);TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable);  //使能捕获比较寄存器预装载(通道1)TIM_OC2PreloadConfig(TIM1,TIM_OCPreload_Enable);	 //使能捕获比较寄存器预装载(通道2)TIM_OC3PreloadConfig(TIM1,TIM_OCPreload_Enable);	 //使能捕获比较寄存器预装载(通道3)TIM_SelectInputTrigger(TIM1, TIM_TS_ITR2);        //输入触发源选择TIM3   //TIM_SelectSlaveMode(TIM1, TIM_SlaveMode_Trigger);//从模式选择 触发	  TIM_CtrlPWMOutputs(TIM1,ENABLE);TIM_Cmd(TIM1,ENABLE);
}
/**********************************************************************
* Description    : None
* Input          : None
* Output         : None
* Return         : None
* Attention      : None
**********************************************************************/
void BLDC_TIM3Config(void)
{TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;			   //基本结构体变量定义TIM_ICInitTypeDef TIM_ICInitStructure;                      //定义结构体变量TIM_OCInitTypeDef  TIM_OCInitStructure;                     //输出结构体变量定义TIM_DeInit(TIM3);TIM_TimeBaseStructure.TIM_Prescaler = 71;				   //TIM基本初始化TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseStructure.TIM_Period =65535;TIM_TimeBaseStructure.TIM_ClockDivision = 0;TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);     TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;            //选择通道1TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //输入上升沿捕获  TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_TRC;  //配置通道为输入,并映射到哪里TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;       //输入捕获预分频值TIM_ICInitStructure.TIM_ICFilter = 10;                      //输入滤波器带宽设置TIM_ICInit(TIM3, &TIM_ICInitStructure);                     //输入通道配置TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; 		    //TIM输出通道初始化TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;             TIM_OCInitStructure.TIM_Pulse =1023; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;      TIM_OC2Init(TIM3,&TIM_OCInitStructure);TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing; 		    //TIM输出通道初始化TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Disable;             TIM_OCInitStructure.TIM_Pulse =65535; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;      TIM_OC4Init(TIM3,&TIM_OCInitStructure);TIM_SelectHallSensor(TIM3,ENABLE);                          //使能TIMx的霍尔传感器接口TIM_SelectInputTrigger(TIM3, TIM_TS_TI1F_ED);               //输入触发源选择   TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);             //从模式选择TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable);//主从模式选择        TIM_SelectOutputTrigger(TIM3, TIM_TRGOSource_OC2Ref);      //选择输出触发模式(TRGO端)TIM_ITConfig(TIM3, TIM_IT_Trigger|TIM_IT_CC4, ENABLE);      //开定时器中断 //TIM_Cmd(TIM3,ENABLE);
}
/**********************************************************************
* Description    : None
* Input          : None
* Output         : None
* Return         : None
* Attention      : None
**********************************************************************/
void huanxiang(void)
{u8 irq_zhuanzi; irq_zhuanzi=(u8)((GPIOA->IDR&0x000000c0)>>6);	//读转子位置irq_zhuanzi|=(u8)((GPIOB->IDR&0x00000001)<<2);if(zheng_fan==RESET){									 //正转switch(irq_zhuanzi)				 //根据转子位置,决定CCER输出相位和转子字偏移量{
/*	  case 0x01:{	                      												TIM1->CCER=0x3081;    //1,4};break;case 0x03:{TIM1->CCER=0x3180;	//4,5	          	   };break;							case 0x02:{TIM1->CCER=0x3108;	//2,5};break;case 0x06:{TIM1->CCER=0x3018;	//2,3	          		};break;case 0x04:{TIM1->CCER=0x3810;	//3,6	          		};break;case 0x05:{TIM1->CCER=0x3801;    //1,6	          		};break;default:break;  */case 0x05:{	                      												TIM1->CCER=0x3081;    //1,4};break;case 0x04:{TIM1->CCER=0x3180;	//4,5	          	   };break;							case 0x06:{TIM1->CCER=0x3108;	//2,5};break;case 0x02:{TIM1->CCER=0x3018;	//2,3	          		};break;case 0x03:{TIM1->CCER=0x3810;	//3,6	          		};break;case 0x01:{TIM1->CCER=0x3801;    //1,6	          		};break;default:break;}  }else{									 //反转switch(irq_zhuanzi)				 //根据转子位置,决定CCER输出相位和转子字偏移量{case 0x01:{										TIM1->CCER=0x3810;};break;case 0x05:{TIM1->CCER=0x3018;		          	   };break;							case 0x04:{TIM1->CCER=0x3108;};break;case 0x06:{TIM1->CCER=0x3180;		          		};break;case 0x02:{TIM1->CCER=0x3081;		          		};break;case 0x03:{ 	              			TIM1->CCER=0x3801;		          		};break;default:break;}}
}
/**************启动******************/
void BLDC_Start(void)
{TIM1->SMCR|=0x0006;        //开TIM1的输入触发	TIM1->DIER=0x0040;         //开TIM1的触发中断huanxiang();			      //调用换向函数,启动			  					 TIM3->CR1|=0x0001;		  //开TIM3TIM3->DIER|=0x0050;		  //开TIM3中断  
}
void BLDC_Stop(void)
{TIM1->SMCR&=0xfff8;		  //关闭TIM1的输入触发TIM1->CCER=0;              //关闭TIM1的六路输出Delay_us(40);			      //延时(加死区)TIM1->CCER=0x0ccc;         //打开三路下管,进行能耗制动while(stalling_count<1);    //等待电机停止(TIM3连续溢出10次,即认为电机已停转)   TIM1->CCER=0;              //关闭TIM1的六路输出,关刹车		  TIM3->CR1&=0xfffe;         //关闭TIM3						  TIM3->CNT=0;               //清TIM3的计数器				   TIM3->DIER&=0xffaf;		  //关TIM3中断
}
/*** @brief  This function handles PPP interrupt request.* @param  None* @retval : None*/
void TIM1_TRG_COM_IRQHandler(void)
{ TIM1->SR&=0;           //清中断标志huanxiang();		     //调用换向函数
}

四、完整工程下载
点击下载完整工程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35047.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

可以ping通网关,dns。但是死活不能上网????怎么回事?

苹果电脑重装了一把win7系统。连接手机热点没问题&#xff0c;连接店里wifi也没问题。但是呢连接家里wifi死活不能上网&#xff01;&#xff01;&#xff01; 各种网上搜索啊&#xff0c;花了三四个小时&#xff0c;找到了各种解决方法&#xff0c;比如什么winsock reset还有什…...

Spring都没弄明白凭什么拿高薪?真香系列

正文 二叉树 由 n&#xff08; n > 0&#xff09;个有限节点组成一个具有层次关系的集合&#xff0c;看起来就像一个倒挂的树&#xff0c;因此称这样的数据结构为树。 一个节点的子节点个数叫做度&#xff0c;通俗的讲就是树叉的个数。树中最大的度叫做树的度&#xff0c…...

一天一道ctf 第36天

[NPUCTF2020]ReadlezPHP 点进源码发现/time.php?source&#xff0c;访问一下得到 <?php #error_reporting(0); class HelloPhp {public $a;public $b;public function __construct(){$this->a "Y-m-d h:i:s";$this->b "date";}public functi…...

dockerfile的详细介绍

Dockerfile 关键字作用备注FROM指定父镜像指定dockerfile基于那个image构建MAINTAINER作者信息用来标明这个dockerfile谁写的LABEL标签用来标明dockerfile的标签 可以使用Label代替Maintainer 最终都是在docker image基本信息中可以查看RUN执行命令执行一段命令 默认是/bin/sh…...

nacos心跳

轮询 概括来说是服务端定时主动的去与要监控状态的客户端&#xff08;或者叫其他系统&#xff09;通信&#xff0c;询问当前的某种状态&#xff0c;客户端返回状态信息&#xff0c;客户端没有返回或返回错误、失效信息、则认为客户端已经宕机&#xff0c;然后服务端自己内部把这…...

408数据结构I 数据结构的基本概念

数据结构的基本概念 数据 数据是信息的载体&#xff0c;是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合&#xff0c;数据是计算机程序加工的原料。 数据元素 是数据的基本单位&#xff0c;通常作为一个整体进行考虑和处理。 数…...

C语言实现学生成绩管理系统(Easy图形界面)

我的小站——半生瓜のblog 代码文件下载链接——链接 学生成绩管理系统学生成绩管理系统效果图流程&注意要点代码实现学生成绩管理系统 效果图 流程&注意要点 核心部分——EasyX显示图形界面&#xff0c;结构体数组和文件操作负责对数据进行各种操作。只要一进去程序…...

Unity常见合批失败

测试的时候注意两点&#xff1a; 1 运行起来编辑器在看结果 2 多用framedebuger 3 framedebuger观测结果时主要注意Shadows.RenderShadowMap中的Shadows.RenderJobDir和RenderForward.RenderLoopJob。可以看出来合批主要是在这两个函数中实现作用&#xff0c;分别是描画阴影…...

Linux使用命令行工具管理用户和组

文章目录一、管理用户账户1.查看用户账户2.添加用户账户3.管理用户账户密码4.修改用户账户5.删除用户账户二、管理组账户1.创建组账户2.修改组账户3.删除组账户4.管理组成员一、管理用户账户 1.查看用户账户 Linux没有直接查看用户列表的命令&#xff0c;但是可以查看用户配置…...

直面秋招!花了6个月肝完阿里技术官的笔记

2. ZooKeeper 介绍 2.1. ZooKeeper 由来 正式介绍 ZooKeeper 之前&#xff0c;我们先来看看 ZooKeeper 的由来&#xff0c;还挺有意思的。 下面这段内容摘自《从 Paxos 到 ZooKeeper 》第四章第一节&#xff0c;推荐大家阅读一下&#xff1a; ZooKeeper 最早起源于雅虎研究院…...

2021制造业数字化案例大会暨探营海尔数字化创新”在青岛盛大开幕

5月29日&#xff0c;“2021制造业数字化案例大会暨探营海尔数字化创新”活动在青岛成功举办。本次活动由由数字产业创新研究中心主办&#xff0c;锦囊专家、首席数字官、承办&#xff0c;海尔集团、山东省CIO联盟、青岛CIO联盟协办&#xff0c;邀请海尔集团的多位数字化高管和十…...

MySQL数据库从小白到小菜04

MySQL数据库从小白到小菜04MySQL进阶补充插入聚合查询COUNTSUMAVGMAXMINGROUP BYHAVING联合查询内连接外连接MySQL进阶补充 插入 在表中插入数据时用的是INSERT&#xff0c;在MySQL中&#xff0c;是可以插入(查找结果表)的数据&#xff0c;但是结果表每一列的顺序类型都必须与…...

Linux高级存储管理

Linux高级存储管理1.lvm定义1.1 逻辑卷2.lvm的建立3.lvm的拉伸4. lvm缩减5.lvm快照6.lvm设备的删除7.管理vdo设备1.lvm定义 1.1 逻辑卷 逻辑卷主要适用于解决存储空间扩展问题&#xff0c;逻辑卷可以利用软件实现无限扩展。LVM可以实现把新的物理分区重组成物理卷&#xff0c…...

2021-06-11 VMware centos7 无线网络配置

一、虚拟机设置 VMware界面最上面&#xff0c;选择虚拟机->设置&#xff1a;将网络连接改为桥接模式&#xff0c;如下图所示&#xff1a; 二、查看主机DNS地址 winR 输入cmd&#xff0c;启动命令行界面&#xff0c;输入ipconfig/all&#xff0c;查看主机DNS服务器地址&#…...

Anime+Vue<svg画线动画>从安装到入门使用

1.安装Anime并全局使用 npm install animejs --saveimport anime from "animejs";2.在阿里巴巴矢量图标库复制&#xff08;或者下载&#xff09;svg到页面中,注意&#xff1a;画线动画svg图标stroke属性必须有颜色值。不然看到个毛线! <template> <div> …...

2021多校第二场F 简单计算几何模板(球体相交体积)

简单板子题题意代码题意 [原题链接](https://ac.nowcoder.com/acm/contest/11253/F) 大致题意&#xff1a; 有A&#xff0c;B&#xff0c;C&#xff0c;D四个点&#xff08;三维坐标&#xff09;和k1&#xff0c;k2两个常数 在空间上取一点P1使 |AP1|/|BP1|k1 &#xff08;所有…...

NoSQL NewSQL

OldSQLNewSQLNoSQL分类关系型关系型非关系型非关系型应用场景交易型&#xff1a;实时&#xff0c;面向应用&#xff0c;关注热数据交易型&#xff1a;实时&#xff0c;面向应用&#xff0c;关注热数据分析型&#xff1a;非实时&#xff0c;面向统计分析&#xff0c;关注全部数据…...

BUUCTF 逆向工程(reverse)之Java逆向解密

程序员小张不小心弄丢了加密文件用的秘钥&#xff0c;已知还好小张曾经编写了一个秘钥验证算法&#xff0c;聪明的你能帮小张找到秘钥吗&#xff1f; 注意&#xff1a;得到的 flag 请包上 flag{} 提交 下载好题目后&#xff0c;发现它是个以.class为后缀的。所以用JD-GUI打开这…...

用 Python 进行游戏开发

1. pgzero python在各个领域都有着丰富的第三方库,pygame是python在游戏领域的应用库,可以用来开发各种不同的游戏。但是对于初学者来说,还是存在一定的门槛。 而今天要和大家分享的pgzero(pygame zero)是在pygame基础上做了进一步的封装,使得设计一款游戏十分的方便,…...

C语言之重定向和文件(更新中)

一、C程序中要包含stdio.h头文件才可以直接使用putchar()、getchar()函数、printf()函数&#xff0c;scanf()函数&#xff0c;它们都是C语言标准I/O包的成员。 二、ANSI C 和后续的C标准都规定输入是缓冲的。缓冲区的大小取决于系统&#xff0c;常见大小512字节和4096字节。 缓…...

多域间访问之外部信任

前言&#xff1a;在同一个林内&#xff0c;通过自动建立可传递的&#xff0c;双向的信任关系&#xff0c;可以实现所有域间的相互信任。但是在不同林之间则不会自动建立信任关系&#xff0c;要实现两个林之间的访问需要手工建立信任关系。 林之间的信任关系又可分为外部信任和…...

Windows系统发布Asp.Net core应用到IIS上

如何在windows系统上发布一个Asp.net core应用的网站&#xff1f;踩了不少坑&#xff0c;现在简单总结如下。 亲测有效的系统&#xff1a; windows 7 x64windows 10 x64windows server 2016 x64 具体步骤如下&#xff1a; 1.Net Core SDK安装 .Net Core SDK是一组库和工具…...

Chrom 插件下载网址

https://chrome.zzzmh.cn/#index...

并查集(Union Find)

算法背景 Union Find算法&#xff0c;中文并查集。主要用来解决图论中的连通判断问题&#xff0c;简单抽象问题为&#xff1a; 平面上有n个点给定他们之间两两连接关系 要求输入任意两个点&#xff0c;判断他们是否能够有一条路径联通 算法步骤 一旦有连接&#xff0c;就把…...

开发手札:git日常抽风记录

今天一大早代码提交不上github&#xff0c;各种方法解决不了&#xff0c;虽然最终不知道是否根治解决了&#xff0c;但是起码目前没问题&#xff0c;所以记录一下。 今天来公司三台开发机&#xff08;两台window、一台macos&#xff09;全部ssh connect timeout errorcode 22或…...

如何用Python快速爬取小姐姐的美图

最近有一个小伙伴拿一个python代码来问我为什么报错&#xff1f; 我仔细一看&#xff1a;是用来爬取某个网站妹子图的代码&#xff0c;结果发现那个网站已经404了&#xff0c;当然爬不到了。 其实很多初学者都喜欢拿网上的案例作为练习&#xff0c;但是我们的爬虫可能会对一些…...

真·杂项:资本论阅读笔记(随缘更新)

Chap1 商品与货币 商品的两个属性&#xff1a;使用价值和价值 商品是使用价值和价值的综合体。 使用价值&#xff1a;物品对人有用&#xff0c;价值分为质&#xff08;属性&#xff09;和量&#xff08;多少&#xff09; 交换价值&#xff1a;一种使用价值和另一种使用价值…...

mysql基础-常用sql语句

常用sql语句整理 在mysql中&#xff0c;常用sql语句为&#xff1a; 修改密码&#xff1a; alter user rootlocalhost identified with mysql_native_password BY 新密码; alter user rootlocalhost identified with mysql_native_password BY 123456;DDL&#xff08;Data Def…...

运行时数据区-虚拟机栈

文章目录谈谈你对虚拟机栈的理解栈帧什么是栈帧&#xff08;Stack Frame)当前栈帧栈帧的内部结构局部变量表Slot操作数栈Operand Stack动态链接方法返回地址一些附加信息虚方法和非虚方法方法的调用&#xff1a;虚方法表面试题方法中定义的局部变量是否线程安全&#xff1f;运行…...

双亲委派模型

从Java 虚拟机的角度来讲&#xff0c;只存在两种不同的类加载器&#xff1a;一种是启动类加载器&#xff08;BootstrapClassLoader&#xff09;&#xff0c;这个类加载器使用C语言实现&#xff0c;是虚拟机自身的一部分&#xff1b;另一种就是所有其他的类加载器&#xff0c;这…...

dbc2000 注册机|dbc2000 注册码注册机下载

点击下载来源&#xff1a;dbc2000 注册机 dbc2000 注册机是同名源程序软件的注册机软件&#xff0c;该源程序软件是一款应用于数据库搭建以及数据写入的数据库架设工具&#xff0c;它拥有强大的数据写入功能&#xff0c;在作为应用程序使用时&#xff0c;它不仅可以充当数据属性…...

秋招面经第八弹:网易二面-数据开发工程师

秋招第八弹&#xff1a;网易二面-数据开发工程师 写在最前&#xff1a;秋招以来一直在冲&#xff0c;因为事情比较多&#xff0c;对于笔试面试一直没有复盘&#xff0c;现在靠仅存的记忆把面试的一些问题记录下来&#xff0c;尽可能记录出能回忆到的问题&#xff0c;但可能记的…...

安卓课程格子APP

https://download.csdn.net/download/weixin_57836618/73810452 功能演示&#xff1a; 查看所有课程 点击主页面空白处即可添加课程 添加课程之后查看课程 查看双周课程 查看单周课程 6.查看课程详情...

强化学习——格子世界

强化学习——格子世界 项目源码地址&#xff1a;https://gitee.com/infiniteStars/machine-learning-experiment 1. 实验内容 2. 实验代码 import numpy as np import matplotlib.pyplot as plt from matplotlib.table import Table from xml.dom.minidom import Document #手…...

华为机试 - 跳格子游戏

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 地上共有N个格子&#xff0c;你需要跳完地上所有的格子&#xff0c;但是格子间是有强依赖关系的&#xff0c;跳完前一个格子后&#xff0c;后续的格子才会被开启&#xff0c;格子间的依赖关系由多组st…...

php 爬课程表信息,Ruby爬取教务系统生成课程表

我为什么要虐自己最近觉得课程格子广告越来越多&#xff0c;乱七八糟的东西越来越多&#xff0c;完全失去了一开始的存在价值&#xff0c;并且没有电脑端app&#xff0c;想查看课程必须拿出手机&#xff0c;而我使用电脑频率要比手机高&#xff0c;所以才有了折腾的动力。于是我…...

android 课程表 ui,UICollectionViewLayout实现课程表布局

因为项目中有课程表的相关模块&#xff0c;第一时间想到用UICollectionView。然而后期的需求越来越复杂&#xff0c;每个格子需要展示的内容越来越多&#xff0c;所以不得不寻找合适的解决方案。最后发现自定义UICollectionViewLayout可以实现我的需求。先放效果图&#xff1a;…...

Android自定义View课程表,Android 自定义View课程表表格

自己闲下来时间写的一个课表控件使用的自定义LinearLayout 里面View都是用代码实现的 最终效果如下图 写的可能有问题希望多多指点创建一个自定义LinearLayout 控件用来装载课程的信息和课程的周数 和节数大概的布局三这样的根据上面的看来觉得总体布局我分了两个 上面的星期是…...

java课程设计设计_java课程设计

1. 团队课程设计博客链接https://www.cnblogs.com/choco1ate/p/12172223.html2.本组课题及本人任务本组课题&#xff1a;泡泡堂(炸弹人)游戏本人任务&#xff1a;Box类(游戏地图中的每个方格)Bomb类(游戏过程中的)游戏玩家输赢信息的文件储存3.需求分析Box类&#xff1a;该类为…...

《课程格子》的一个笔试题目

题目如下&#xff0c;感觉很适合喜欢琢磨的程序员&#xff0c;也是考验你编码风格的时候。 Lets make a tower defense game&#xff08;塔防游戏):1. You have 1 tower, with H health and D dps(damage per second).2. There are n attackers, each with h_i health and d_i …...

Android仿照超级课程表 or 课程格子 一键提取课表功能(方正系统)

参考文章http://blog.csdn.net/sbsujjbcy ,本文仿照‘ 安卓弟 提供的android 项目实战——打造超级课程表一键提取课表功能文章&#xff0c;对他的代码进行了修改和补充&#xff0c;为什么要修改呢&#xff1f;原因是安卓弟的那个源码版本过于老旧&#xff0c;很多方法已经过…...

JAVA练习 家庭记账本

请以文本的形式写一个软件来纪录一个家庭的收入与支出&#xff0c;收入情况与支出情况。 package project; import java.util.Scanner;public class FamilyAccount {public static void main(String[] args) {//用文本的形式写一个家庭记账软件/*界面设计***********家庭记账软…...

晒晒我的记账本,论记账的重要性

当我们遇到各种各样线上透支&#xff0c;次月还款种种诱惑情况下&#xff0c;还能理性的消费吗&#xff1f;这时就显示出记账重要了。 记账是一种数据记录&#xff0c;通过数据就知道了&#xff0c;自己一个月的钱花了什么&#xff1f;收入都有哪些类别等等都能浏览到。 此月…...

日常坚持记账,简单好用的记账本分享给你

很多朋友刚参加工作时间不长&#xff0c;收入不高&#xff0c;攒不下钱这些都是一些比较头疼的问题&#xff0c;如果薪酬低的&#xff0c;基本开支成问题也就罢了&#xff0c;就连薪酬高手都感觉自己的工资没有花就精光了&#xff0c;越想攒钱越攒不了钱。这样看来就不是薪酬高…...

javaweb记账本系统

今天带来的项目是一个记账本系统,使用EclipseMysql实现一个javaweb记账系统, 可以使用JavaSSH框架进行实现, 能够对日常的收支进行记录, 系统分为管理员与普通用户两种角色, 能够进行用户管理与记账管理 运行环境 java, jdk1.8,tomcat8.5,mysql5.6,EclispseEE 运行截图 以上…...

晨曦记账本记账,计算每个账户的某时间段账目

现在消费的支付方法多了&#xff0c;自已的每个账户上消费了多少&#xff0c;收入了多少&#xff0c;我们用到晨曦记账本记账本后&#xff0c;如何查询某时间段的每个账户记录呢&#xff1f;下面就一起来看如何搜索浏览吧。 首先我们使用“晨曦记账本”&#xff0c;在记账前都…...

晨曦记账本,记账一目了然

你们是否有这样的困惑&#xff0c;每月工资也不少&#xff0c;但就是攒不下来钱&#xff0c;可能 你需要好好地记账了&#xff0c;通过记账的方式 &#xff0c;可以培养我们理性的消费习惯&#xff0c;将资金花在真正需要的地方&#xff0c;那么&#xff0c;怎样记账才能一目了…...

晨曦记账本记账收支,统计结余

对于一些参加工作不久收入不高&#xff0c;尤其是刚毕业一两年的&#xff0c;缺乏攒钱、理财意识&#xff0c;就成了月光族&#xff0c;一分别想剩。 其实导致月光的关键就是消费没有节制&#xff0c;不知道钱花在哪里了&#xff0c;所以记账就显出优点&#xff0c;查看账目&a…...

qt项目记账本

目录 设置图标 构置界面 mainwindow.h main.cpp mainwindow.cpp 效果 这个项目我是用mainwindow&#xff0c;在创建项目的时候要注意&#xff0c;如果有小伙伴想用其他创建项目也是可以的&#xff0c;但要记得改一下我mainwindow.cpp中的类名&#xff1a;MainWindow->你…...

C++ 大作业 记账本

C大作业——记账本前言项目构思前言 这是我的C大作业&#xff0c;要求如下&#xff1a; 每位同学课外独立完成一个小型应用程序的设计、编码和测试&#xff1b;程序要求用到面向对象编程的特性&#xff1b;程序源代行数要求&#xff1a; 1200行以上&#xff08;自编代码&#…...