STM32定时器1控制电机输出两路PWM波形问题

本人刚学stm32,用定时器1的CH1和CH2输出pwm波形是不知道为什么没有高电平输出,电机根本不转求大家看看
#include "include.h"
/*
硬件连接:
(PE9->EN1---TIME1_CH1 右) (PE11->EN2---TIME1_CH2 左) PA4->INT4 PA5->INT3 PA6->INT2 PA7->INT1
*/

/*0011 1010--->,,EN1,EN2,INT4,INT3... */
void PWM_Foward(void)
{

GPIO_SetBits(GPIOA , GPIO_Pin_4|GPIO_Pin_6);
GPIO_ResetBits(GPIOA , GPIO_Pin_5|GPIO_Pin_7);
}

/*0011 0101--->,,EN1,EN2,INT4,INT3... */
void PWM_Back(void)
{

GPIO_SetBits(GPIOA ,   GPIO_Pin_5|GPIO_Pin_7);
GPIO_ResetBits(GPIOA , GPIO_Pin_4|GPIO_Pin_6);

}

/*0011 0110--->,,EN1,EN2,INT4,INT3... */
void PWM_Left(void)
{

GPIO_SetBits(GPIOA ,   GPIO_Pin_5|GPIO_Pin_6);
GPIO_ResetBits(GPIOA , GPIO_Pin_4|GPIO_Pin_7);

}

/*0011 1001--->,,EN1,EN2,INT4,INT3... */
void PWM_Right(void)
{

GPIO_SetBits(GPIOA , GPIO_Pin_4|GPIO_Pin_7);
GPIO_ResetBits(GPIOA , GPIO_Pin_5|GPIO_Pin_6);
}

/*参考固件库使用手册247*/

void Timer1_Config(void)
{

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
/*Time1_Init*/
/*将寄存器重新设为缺省值*/
TIM_DeInit(TIM1);
/*预分频为72M/3600=20KHZ*/
TIM_TimeBaseStructure.TIM_Prescaler=3600-1;
/*时钟分割,采样频率设置,滤掉外界高频抖动,无外部设备介入设为0*/
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
/*装载值:20 , 20KHZ/20=1Khz,计数值为1ms*/
TIM_TimeBaseStructure.TIM_Period=200;
/*向上计数*/
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
/*重复计数器,只限制在0X00--0XFF,stm32中文手册209*/
TIM_TimeBaseStructure.TIM_RepetitionCounter=0;
TIM_TimeBaseInit(TIM1 , &TIM_TimeBaseStructure);

/*设置通道*/
/*PWM输出通道选择,向上计数时,1:若计数值<装载值,为有效电平,否则无效,通道2相反*/
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;
/*正向通道有效,反向通道无效*/
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;   
/*占空比预设为10,为0.5ms,占空比不能超过装载值即周期*/
TIM_OCInitStructure.TIM_Pulse=100;
/*输出极性,及在计数阶段IO口的电平*/
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;  

TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset; 
TIM_OC1Init(TIM1 , &TIM_OCInitStructure);
TIM_OC2Init(TIM1 , &TIM_OCInitStructure);   
TIM_Cmd(TIM1 , ENABLE);
/*定时器1作为主输出*/
TIM_CtrlPWMOutputs(TIM1 , ENABLE);

}
void PWM_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* (PE9->EN1---TIME1_CH1 右) (PE11->EN2---TIME1_CH2 左)*/
/*GPIO_Init*/

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);

/*IO口的复用:作为输入输出是打开IO口模式复用,作为第二功能比如I2C时打开时钟复用*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO , ENABLE);      
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);
/*INT1----INT4*/
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA , &GPIO_InitStructure); 
/*将TIM1完全重映射到GPIOE*/
GPIO_PinRemapConfig(GPIO_FullRemap_TIM1 ,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_11; 
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOE , &GPIO_InitStructure);     
Timer1_Config();

}

1个回答

TIM_CtrlPWMOutputs(TIM1, ENABLE); //使能或者失能TIM1外设的主输出,定时器1和其他通用定时器不一样,还需要这一句,在寄存器版的PWM章节提及

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
stm32同一定时器使用两个通道输出pwm,想用中断方式对两路脉冲计数,但只有一个中断函数怎么办?
stm32同一定时器使用两个通道输出不同频率的pwm,想用中断方式对两路pwm的脉冲个数进行计数,但同一定时器只有一个中断函数怎么办?
stm32用定时器设计h桥直流电机驱动线路
怎么搞呀,pwm,讲原理,怎么设定转速,怎么改变占空比,文字说明
STM32F407中定时器1和定时器5的触发关系
我利用STM32F407控制电机,用TIM1输出互补对称的PWM波,利用TIM3读取 磁编码器的相对式位置,并用TIM3触发TIM5来进行数据记录。 现在遇到的情况是: 1、我用延时函数使得电机在不使用磁编码器的情况下缓慢旋转,然而当我的磁编码器远离电机时,电机发出了啸叫声(比较大的电流声),而磁编码器靠近电机磁铁的时候,啸叫声消失。 2、TIM1配置为SMCR = 0x00,也就是从模式被禁止; TIM5配置为从模式,TIM3配置为主模式; 3、当屏蔽掉TIM5的初始化或者TIM3的初始化,或者屏蔽掉两者的主从模式初始化,均能使啸叫声消失 查阅参考手册,发现TIM1的SMCR寄存器的TS位为0时,接受来自定时器5的触发。但是SMS位既然已经是0,说明从模式应该已经被禁止了;但实际上定时器又确实被定时器3或者5给影响了。请问这是怎么回事呢?
菜鸡求教,stm32f103的板子,做两路pwm输出,结果有一路没反应。
本菜鸡想用stm32103的板子控制两路舵机,就干脆直接在pwm程序上改了。我查了一下TIM3通道2的复用口的PB5,我就加一个通道1的复用口的PB4。 ![图片说明](https://img-ask.csdn.net/upload/201912/23/1577092428_313723.png) **但结果是原来的PB5口好用得很,但新加的PB4口毛用没有。求大神帮我解答,万分感谢!** ``` void TIM3_PWM_Init(u16 arr,u16 psc) { //定义变量 GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; //IO口配置 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //使能PA4、PA5 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_4|GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); //定时器通用配置 TIM_TimeBaseStructure.TIM_Period = arr; TIM_TimeBaseStructure.TIM_Prescaler =psc; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //通道1配置 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC2Init(TIM3, &TIM_OCInitStructure); TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //通道2配置 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM3, &TIM_OCInitStructure); TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_Cmd(TIM3, ENABLE); } int main(void) { u16 led0pwmval=0; u8 dir=1; delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); LED_Init(); TIM3_PWM_Init(20000-1,72-1); while(1) { TIM_SetCompare2(TIM3,20000-500); TIM_SetCompare1(TIM3,20000-500); delay_ms(1000); TIM_SetCompare2(TIM3,20000-550); TIM_SetCompare1(TIM3,20000-550); delay_ms(1000); } } ```
关于STM32单片机PWM输出实验定时器的问题
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高 什么叫做输出极性 极性不是规定的吗1和0 怎么就直接输出了
大家好 stm32定时器周期动态修改的问题 求助
想在32中根据串口收到的值不断修改定时器的周期,然后写了如下代码 ``` while(1) { //串口接受 数据给val //定时器重新初始化 TIM3_PWM_Init(val1-1,84-1); TIM_SetCompare1(TIM3,led0pwmval1); TIM_Cmd(TIM3,ENABLE); } ``` 后来用示波器看了一下 发现波形不对 应该是定时器重新初始化时间太长 有什么解决方案吗 请教各位大佬 也尝试过添加延时 但波形出现的毛刺很厉害 是不是不能这种方式去改周期啊
STM32PWM输出实验定时器求讲解
使能自动重装载的预装载寄存器允许位 和使能输出比较预装载两个名词怎么理解
stm32定时器中断程序执行后无法进入主程序。
stm32定时器中断程序执行后无法进入主程序。 void TIM3_IRQHandler(void) { u16 adcx; u16 dacval; if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); adcx=Get_Adc_Average(ADC_Channel_6,1); if(adcx>2048) { dacval=DAC->DOR1; dacval=dacval-100; DAC->DOR1=dacval; } } } 以上是中断程序中的代码,如果将代码换成简单一点的就不会出现这种情况了
STM32F103RCT6 6路互补PWM信号
![图片说明](https://img-ask.csdn.net/upload/201603/04/1457091254_266719.png) 我的STM32F103RCT6 Tim8输出6路互补信号中有三路PWM有缺陷,请问可能是什么原因导致的
stm32的TIM定时器失能后再使能是否CNT值会从0始开始
stm32的TIM定时器失能后再使能是否CNT值会从0始开始
如下,STM32F103RCT6怎么产生15.6K占空比可调的PWM
现在硬件已经确定 引脚A8,A9,A10 功能有TIM1 CH 1,2,3 左电机A,B,C三相 0时关断 1时导通 上MOSFET接VIN 引脚B13,B14,B15 功能有TIM1 CH 1 N,2 N,3 N 左电机A,B,C三相 1时关断 0时导通 下MOSFET接GND 引脚C6,C7,C8 功能无 重定义功能TIM3 CH 1,2,3 右电机A,B,C三相 0时关断 1时导通 上MOSFET接VIN 引脚A7,B0,B1 功能有TIM3 CH 2,3,4 重定义功能 TIM1 CH 1N,2N,3N 右电机A,B,C三相 1时关断 0时导通 下MOSFET接GND STM32使用内部晶振 64M主频 现在两个电机 共6个桥臂,每个桥臂有两个MOS管 问题是 目前需要这6个桥臂都能产生15.6K,占空比精度至少为1.2%的PWM,该PWM的产生,当输出为高时,上MOS导通,下MOS关断。当输出为低时,上MOS关断,下MOS导通。即同一时刻上下MOS必须有且只有一个导通。另外同一个电机的3个桥臂PWM输出需要中心对齐。左电机用TIM1没有问题,关键是右电机功能冲突,配不出来像样的PWM。 楼主目前只分析出来并尝试了以下几种方案: 1.用定时中断计数,计数值在某个范围内时控制电平翻转。由于64M主频,15.6K的PWM,占空比精度1.2%的话,也就是需要50个时钟周期就需要进行一次中断,并且执行完中断函数中的各类判断的语句。处理速度跟不上,用不成。 2.用定时器中断进行电平翻转,同时改变定时器中断周期。这样在两次定时器中断之间,由于需要执行一部分程序,会存在一个最小的延时。这种方法可以产生15.6K 占空比在6%~94%之间可满足精度要求的占空比。但存在的问题是需要有三个PWM输出,而且是中心对齐。如果在同一个定时器中去按上面这个方法去做,那么两个PWM占空比至少得相差6%,而实际上两者之间可相差任意值。另外如果是用TIM2,TIM3,TIM4这四个定时器的中断分别翻转来控制产生占空比,那怎么对齐呢?有点想不通了。。 3.在WHILE(1)的大循环里面用计时器计数,进行电平翻转,这样可以正常输出。但问题是在执行中断时,会影响到计数,输出波形不稳定。 4.另外还有一个是直接用TIM3,用C6,C7,C8输出PWM,可以控制接VIN的3个MOS管导通或者关断,但无法保证接GND的3个MOS管在合适的时间导通或者关断。楼主对STM32了解还不是特别深入,了解到PWM输出是通过比较设定值与当前计数值大小来进行输出的,但不清楚是不是可以通过这个设定值与当前计数值比较产生中断呢,如果能通过这种方法产生中断,就可以在中断中翻转对应桥臂的下MOS管,这样就可以在上MOS关开通时,下MOS管关断,上MOS管关断时,下MOS管开通了。 求教求教,谢谢大家!
stm32串口中断和定时器中断冲突
串口1每1秒给32发一串数据,通过中断接收;串口而是被动的,只有32给他发送数据0x01,它才给32回一串数据,定时器中断产生定时时长,用来发送那个0x01,现在的问题是32在定时器和串口同时工作的情况下,接收到的串口数据有错。
关于stm32系统定时任务的问题
![图片说明](https://img-ask.csdn.net/upload/201710/12/1507787147_386876.png) 在用stm32做一个飞控程序时。需要用到上面这种系统循环定时任务,有一个问题: 在System_Task_Loop函数里面,有1ms 、2ms、5ms的循环任务,但是他的这些定时是怎么得到的? 是随便选取的还是计算得到的? 就是他怎么知道在 1ms的时候做这个任务,在2ms的时候做另一个,而且没有3ms 的定时任务? 还有就是什么情况下需要使用这种系统循环任务? 谢谢。
stm8s003更新定时器的问题
我用stm8s003做一个马达停止检测的实验,当马达运行时不断的有触发信号给芯片,每接到一个信号,定时器就从设定的时间开始定时,就是定时器会以最后一个触发信号开始定时,但实验时发现定时器定时时间会受到上一触发器的影响,应该是不能初始化定时器。下面是代码 void Tim1_Init(uint16_t value) //每接到一个触发信号就重新初始化定时器 { TIM1_TimeBaseInit(200, TIM1_COUNTERMODE_UP, 999, value); //value 设定的时间 TIM1_SetCounter(0); TIM1_ARRPreloadConfig(ENABLE); TIM1_ITConfig(TIM1_IT_UPDATE , ENABLE); TIM1_Cmd(ENABLE); } 我的方法是每接到一个触发信号就初始化一次定时器,用的是库的方法写
想问一下怎么把语音模块通过stm32F4控制电机的转动
想问一下怎么把语音模块通过stm32F4控制电机的转动,我只知道用串口中断去控制,但是具体怎么操作不懂,急需
STM看门狗定时器出现问题
最近使用最近用STM32F100C8T6做一款产品,用于定时开关的功能,但是用着用着发现不管用了,无法定时开关,开启后无论如何灯都不会亮,现求助哪位大神帮忙解决一些
STM32F429 STM32F407两种芯片哪种对网络通信比较好?
STM32F429 STM32F407两种芯片哪种对网络通信比较好? 征求下大家的意见,并且可否使用DMA传输呢? 有没好的方案提供下,谢谢
keil error #20 stm32
![图片说明](https://img-ask.csdn.net/upload/201912/27/1577419627_902411.jpg) 刚开始用stm32,还不会用,不了解stm32f10x系列芯片用管脚需要如何配置,望各路大神提点小弟一二
openmv与STM32之间怎样通过IIC通信协议通信
之前用openmv进行颜色识别然后与STM32通过串口通信,但是STM32接收到的图像中心坐标与openmv中的实际坐标有时候会不同。所以想尝试一下openmv与STM32之间到其他通信方式,
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
如何防止抄袭PCB电路板
目录 1、抄板是什么 2、抄板是否属于侵权 3、如何防止抄板 1、抄板是什么 抄板也叫克隆或仿制,是对设计出来的PCB板进行反向技术研究;目前全新的定义:从狭义上来说,抄板仅指对电子产品电路板PCB文件的提取还原和利用文件进行电路板克隆的过程;从广义上来说,抄板不仅包括对电路板文件提取、电路板克隆、电路板仿制等技术过程,而且包括对电路板文件进行修改(即改板)、对电子产品外形模具进行三维...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问