精华内容
下载资源
问答
  • 前言:春节过后回到公司时间后就选择了辞职,前前后后面试了6,一共10家公司,技术过了6家,拿到了其中3家公司的offer,最终决定来到某个二线互联网公司工作。以下面试企业为了保密我不说实际名称 第家公司...
    前言:春节过后回到公司一段时间后就选择了辞职,前前后后面试了6天,一共10家公司,技术过了6家,拿到了其中3家公司的offer,最终决定来到某个二线互联网公司工作。以下面试企业为了保密我不说实际名称
    第一家公司:简称A
    由于刚刚开始面试选择试试水,就在智联上投递了一写公司,这家就是第一个让我去面试的公司。这家企业是新三板上市的一家公司,大约有700人那样。面试时间定在早上10点,去了以后给了一份面试题,第一题是性格测试我没有写,第二题是字符集,第二题是jsp的9大内置对象,中间是很多选择题,大多都是关于进制的,最后2道是算法题和sql。写完以后大约11点了,然后把面试题给hr,然后hr一会告诉我笔试不过,无法进入面试。这个还是挺无语的。因为在面试过程中不管如何都会和面试官聊下,起码知道哪些题不对,也可能是我自己准备不充分导致,第一次面试就这样草草结束。值得一说的是这家hr超级漂亮,神似钟丽缇。
    第二家公司:简称B
    这家公司规模很小,大约就50人吧,是boss直聘上一个hr主动联系让去试试,所以就去,对于这家企业还是信心满满的,想找点自信,结果恰恰相反。去了以后也没面试题,写了一个登记之后hr就让我和面试官聊天,首先让我把项目流程介绍一下,我说了以后。他说我看了你的github代码感觉还不错,你给我show一段。有点懵逼,猛下这么说出乎我的意料,我就说写个2分查找吧,就随手写了一个但是我竟然犯了一个致命错误,返回值有些问题写成null,但是明显我采用的是int而不是integer。然后接着问我web前端遇到过什么问题没有,我说平时这方面遇到问题倒不是太多,他说好你给我写个过滤器,这个实在是没法写出来,平时可能都是电脑写,足以说明我准备的确实不充分,后来又让我写个sql,虽然最终写出来了但是时间过久。然后聊点其他的就说你回去吧,后续通知,我就知道这次面试再次挂了。心情低落极点了。
    第三家公司:简称C
    这家企业规模还不错,有上千人吧,环境也可以,是拉钩上看到的一家企业。也是10点面试,去了给了一个面试题,一份心理测试题,面试题难度还是有点的,10道选择题考察知识多少final,static,do which等知识难度倒是一般,后面是大题,比如写出ssh的配置 ,数据库连接池配置,thread和runnable是什么区别,写几种单利模式,Linux一些查找命令,一个复杂的sql语句。Linux我不太熟悉,没写出来,ssh配置这个平时看的也是,写的很一般,数据库连接池配置写的也一般,然后是心理测试,这个测试题非常多而且考察东西也多,包括一些国外的名人问他干嘛的,设计怎么让北京三环不堵车,还有怎么设计类似摩托车但是不耗油等等吧,答完题大约11点半,然后第一面竟然是hr,聊了还不少,关于为啥跳槽,发展方向,以前做啥等。第二面大约就几分钟,问我会Linux不,我说不怎么会,以前你干嘛的然后就说你回去吧我们后续通知。基本也挂了。
    第四家公司:简称D
    从第四家公司开始变得顺利,连续过了6家公司。经过前3家失败,我回去总结下,把基础知识复习一下,避免死在这样的问题上。这家企业大约300人,一家传统的公司,主要大数据方面的。去了也是一份面试题,这个面试题对我来说比较简单,选择题就不题了,大题是三个一个问什么是ioc和aop,一个是设计模式,一个是sql。大约半小时就写好了,然后面试官看了一眼面试题也没问面试题上问题,问我你说咱们聊什么知识,我就说多线程吧,然后他问我Java线程池几种方式,我回答4种,各位自己查哪几种,然后又聊thread和runnable,接着问hashtable和ConcurrentHashMap,因为看过这两个的源码所以回答还是挺轻松的。陆陆续续问了一些线程安全问题,最后又聊了一些存储过程知识,这个平时用的少回答的一般,但是我观点是尽量少用存储过程,避免把大量业务放在数据库处理。还问了一些数据库索引设计问题,这个我会,所以答的也可以。最后问下我薪水我说最低多少,就开始二面了。二面是一个不是Java的,是这整个团队的组长,主要问了一些如何处理几亿日志查询,我说可以采用存储过程还有内存数据库什么的,她说不是好的方案,接着我问你们有什么好的方案,她说我们暂时没有,用的就是你刚刚说的。总体还是挺满意的然后问我薪水,让我等下说让总监决定我的薪水,然后总监不在,这个确实不在,他领着我去人事那边做个登记说明天给电话来复试,大约2天后打电话让去复试,因为我手里有offer了就给hr说了情况,我说你问下,如果薪水不到,我就不去了。后来hr回复他们确实给不了,我说那就算了。这家公司是好的开头,整个信心提升了好多。
    第五家公司:简称E
    这家企业大约700人,300多个研发,办公环境倒是一般,下午2点过去的,也没有面试题,主要问线程知识,然后问我你熟悉哪个数据结构说个,然后我随便说了几个他说可以,又问我要多少薪水,最低多少我说了下他说没问题,就让我去二面了,二面问的是数据库,线程方面知识,我感觉答的倒是一般,大约聊了半个小时,然后说我们今天就聊到这,然后我就回去准备下一家,然后回来路上一面就给我打电话说你面试通过了,薪水按照你说的来,问我啥时候入职我说下周,他说尽快,最后hr也给我说了薪水,过了一天就发了offer,这家公司感觉还行吧,最后只是感觉挺对不起hr的,答应去没去,打电话时候明显生气了。
    第六家公司:简称F
    这家公司规模还不错,可能有些买水果支付钱的时候还用到,但是总部在上海,北京新成立不久。这家没面试题,主要是针对项目,问我遇到过什么问题,为什么这么设计,好处在哪里,我都一一解答了,聊得时间蛮久的,最后他说他们加班可能会少,团队目前就5个人,问我能否接受,然后又说自己公司很有前景什么的一堆,我个人不喜欢这样小团队,坑太多就说我回去考虑下给你打电话,当然薪水他也说可以按照我要的来。因为不喜欢这样环境所以也没打电话给他。
    第七家公司:简称G
    这个公司可以算是3线互联网了,小有名气,规模也比较大,当时是很想拿下的,下午2点过去的,不过面试的还挺多的,就我那一屋子就3个人,面试题是一个小时,第一题主要是针对目前流行的一些技术,让解释下。我大约搞定了80%,因为平时看的多,但是也很多只是知道存在并不知道用法,第二题是一个排序,我写了一个快排,第三题是求一个数的质数第四题是二叉树(个人觉得出的有问题我后来问题这个题意义是什么他说考察一下是否会写递归)第五题是设计题我参考了一下集合方面的设计,采用接口+抽象类+类这种方式。最后是一个排序,我没有多少思路。面试时候可能人多直接由技术总监面试,技术考察点倒不是很多,着重考察个人,问你如何展开工作,你是什么样的人等等我回答的还可以,然后他说你的薪水多少我说下,然后他签字说去找hr吧。这家过的很轻松。hr给的薪水明显低些,但是他们4个月奖金,3个月一发,考核是0.8到1.2基点。offer合同也有写,应该比嘴上说我们几个月年终奖靠谱多了。这家企业我犹豫了好久,因为后面我成功面试了另外一家,这家技术总监给我打电话聊了有半小时说了一下他们的前景而且薪水会加到比我拿到的只多不少,hr后来打电话也确认了这件事。在后来属于我的直属上司又打电话和我聊聊,不过说实话挺感动,我说我们加微信吧,以后有机会再合作,因为互联网圈子很小。
    第八家公司:简称H
    这家企业规模还挺大,让写一个心理测试题,主要是php开发,根本就没有Java开发,主要想招几个人做一些项目维护,来了一个面试还挺帅的,主要就问项目,没什么具体技术点,就是我们相互吹吹**,他吹完我在吹,然后说小伙子很不错,要不要考虑来啊,我说这个压力山大啊,你容我考虑考虑就回去了,反正我肯定不想在这样环境工作,很苦逼。
    第九家公司:简称I
    这家公司知名度挺大的,估计大家也都知道。下午本来约好是4点面试,但是我中间有事迟到了,4点半过去的。第一面的面试官很nice,感觉人特别的好,也很随和,生活中是值得交的朋友。第一个问题问我什么事面向对象,反正我回答滔滔不绝。第二个问了hashtable相关的知识这个我也会接着我们又聊聊volatile,我又说了Java内存模型,后来让写个算法,写的不太好,他说没关系,我只是想看看你的代码风格。然后又让写个sql,我随手就写出来,然后他说你在写个那个有点复杂没写出来,他说没关系,这个不是面试的范畴,有点难为你了,这个不算啊,不要在意。后来我记得还问了数据库索引方面知识,最后告诉我你的一面过了,你等下一面吧(反正这个面试官给了我很深的印象,人确实不错)。
    二面主要考查的是项目,主要问了我最后一个项目包括很多细节,如何优化的并且画图,同样也让写个算法,不过比较好的是让伪代码就行,所以我还是写出来了,不过又问有没有更好的方式,我想了想说目前我也没更好的方式了。(遇到算法题哪怕在复杂只要实现就写,能写出来比不会写强很多)整个面试还是围绕项目展开的。后来面试结束他说整体还可以,某些细节没答出来,但是整个思路都是对的,那时候都7点多了,问我明天再来一次复试怎么样,我说我只有上午有时间,下午我有面试。他说你等下我去找老板(就是他的领导),然后展开三面,三面上来问了一下整个项目的流程我再次解释并画图,然后聊天过程核心还是团队协作问题,如何和产品经理沟通,还有一个如果你是组长你会怎么样做,侧重管理能力,因为我在第二段工作做过类似所以回答起来还是很轻松,其实和产品沟通,研发沟通最主要是换位思考,懂的尊重别人。面试完毕都快9点了,他说hr肯定面不了了,你明天还要不要在来一次,我说明天下午有面试来不了,他说那没事我让她电话联系你,我说薪水我要多少合适啊,他说你随便,我说我有offer了说下offer薪水,他说你可以提,我们这边会给你一个考核的。最后走的时候说你明天和hr聊天注意点说话不要被刷了,尽量不要说你领导过多好话。反正意思保持中立。前前后后到发offer用了2天时间,hr确实也没问薪水问题直接他们评定的。我觉得挺理想的。
    第十家公司:简称J
    这家同样是大企业,名气也不小。由同事内推过去的。面试的人简直了实在太多了,感觉所有面试加起来100人都不止,去了也没笔试题,一面就问我几个问题,一个是二叉树的顺序排序,会先跟,后跟,中跟就是不会顺序,尴尬了。第二个让写一个单例模式,写了一个内部类。第三个问题问了hashMap的<操作,我回答的不算好,主要考查源码的,然后让我写个归并排序,这个同样写不出来,连续几个就知道完蛋,肯定不过。果真不过,然后问我面试怎么样我说还行拿到几个offer,他说恭喜之类的话就让回去了。
    相信看到这里,你也对如何面试有了一定程度的了解,如果还有什么不懂的,可以加下680748947找我交流~
    总结:
    整个面试下来,觉得面试也有运气成分,但是更多是实力体现,我们不要抱着侥幸的心理,把基础打扎实,注意说话的方法,一定洋溢着自信。注意一点是当面试官问你你有什么想问他的不,把握好机会,也会可以逆转局势。你可以问他需要什么样人然后定位自己看看自己是不是,说到底面试的人想要招人过去,记得一定要诚恳。不要说什么大话,什么我精通多线程之类的。就说你自己性格特点能做什么样事,也许面试官会给你一个机会。还有就是面试之前记得准备充分,关于是否要看面试题,如果可以还是要看一下,注意一下问题的细节,为自己创造多一点机会。还有就是面试完毕之后进行总结,千万失败否定自己垂头丧气。如果感觉公司还不错,就可以踏踏实实工作,不要眼高手低,错过机会,当你实力很强的时候就是企业主动找你的时候。

    展开全文
  • 1.至尊小宝大家都看过大话西游之月光宝盒,月光宝盒可以去到五百年后的五岳山,也...当曾经经历过,那么记录过去发生的一切,回到现在也记录当前的每一天,当需要“菠萝菠萝蜜”的时候,那么就时间倒转。//月光宝盒...

    1.至尊小宝

    大家都看过大话西游之月光宝盒,月光宝盒可以去到五百年后的五岳山,也可以回到五百年前的五指山。但是,月光宝盒这样的宝物是怎么做到的呢?现在让两千年后的我们来创造它,完成千年前的仙履奇缘。

    对于至尊小宝来说,要想回到过去和未来,首先要拥有一个可以记录人生每一天的月光宝盒。当曾经经历过,那么记录过去发生的一切,回到现在也记录当前的每一天,当需要“菠萝菠萝蜜”的时候,那么就时间倒转。

    //月光宝盒

    public interface MoonlightBox {

    }

    //至尊小宝

    public class ZhiZunBao {

    // 生活中某年的某一天

    private String state;

    // 通过月光宝盒记录当日时间

    public MoonlightBox recordTime() {

    MoonlightBox box = new MyMoonlightBox(this);

    return box;

    }

    // 回到过去或未来的某一天

    public void restoreTime(MoonlightBox box) {

    MyMoonlightBox mybox = (MyMoonlightBox) box;

    setState(mybox.state);

    System.out.println("回到" + mybox.getState());

    }

    // 现在的某一天

    public void setState(String state) {

    this.state = state;

    }

    // 月光宝盒

    private class MyMoonlightBox implements MoonlightBox {

    // 宝盒中的某一天

    private String state;

    // 记录至尊宝的人生

    public MyMoonlightBox(ZhiZunBao zhiZXB) {

    this.state = zhiZXB.state;

    }

    // 回到过去的某一天

    public String getState() {

    return state;

    }

    }

    }

    2.大话西游

    回到大话西游的世界,五百年前孙悟空被观音收服,月光宝盒记录这发生的一切。五百年后孙悟空托世为至尊小宝,经历人世间的悲欢离合,当上天再给一次机会,通过月光宝盒回到过去,力保唐三藏去西天取经,帮助人们摆脱人世间的苦难。

    public class DaHuaXiYou {

    public static void main(String[] args) {

    // 至尊小宝

    ZhiZunBao bao = new ZhiZunBao();

    // 五百年前被观音收服

    bao.setState("五百年前");

    // 月光宝盒记录当时发生的一切

    MoonlightBox box = (MoonlightBox) bao.recordTime();

    // 五百年后至尊宝与白晶晶的故事

    bao.setState("五百年后");

    // 摆脱世俗回到五百年前保唐僧西天取经

    bao.restoreTime(box);

    }

    }

    展开全文
  • - 你做一个任务需要一天,但是你的老板每个小时都回来给你一个新任务。 - 你做一个任务需要一天,等你做完今天的任务,你的老板会给你下一次的任务。 结果是你都花10天做完了10个任务,请问...
  • [转]PWM详解

    千次阅读 2017-08-25 15:25:28
    之前学东西总是模模糊糊,看了pwm,虽然知道怎么配置,但是如果我自己去写个pwm的程序,我却不知如何下手。 不知道如何配置他的频率和占空比。今天痛定思痛,决定彻底搞懂pwm。 百度给 的答案是: pwm的...

    之前学东西总是模模糊糊,前几天看了pwm,虽然知道怎么配置,但是如果让我自己去写一个pwm的程序,我却不知如何下手。

    不知道如何配置他的频率和占空比。今天痛定思痛,决定彻底搞懂pwm。

    百度给 的答案是:

    pwm的频率是指每秒钟信号从高电平到低电平再回到高电平的次数,占空比是高电平持续时间和低电平持续时间之间的比例。
    pwm的频率越高,其对输出的响应就会越快,频率越低输出响应越慢。

    首先pwm要知道他的频率,频率该如何设定呢?

    看了这一位博主的文章让我名表了很多:http://blog.csdn.net/huang_jinjin/article/details/7292166?locationNum=6&fps=1

    他的最后有这一段话,不分频的话,时钟是72mhz,就是每秒计数72m,而TIM_Period就是定义了pwm的一个周期记的次数,比如说是2000,就是经过2000/72m这个时间是一个周期,

    那么频率就是周期的倒数,这个pwm的频率就是72m/2000(hz),这样就确定了频率。

    那么TIMx_ARR寄存器的值是怎样来确定pwm的频率的呢?TIM_Period(即是TIMx_ARR寄存器的值) 的大小实际上表示的是需要经
    过TIM_Period 次计数后才会发生一次更新或中断。接下来需要设置时钟预分频
    数TIM_Prescaler,这里有一个公式,我们举例来说明:例如时钟频率=72MHZ/(时
    钟预分频+1)。(假设72MHZ为系统运行的频率,这里的时钟频率即是产生这个pwm的时钟的频率)说明当前设置的这个TIM_Prescaler,直接决定定时器的时钟频率。
    通俗点说,就是一秒钟能计数多少次。比如算出来的时钟频率是2000,也就是
    一秒钟会计数2000 次,而此时如果TIM_Period 设置为4000,即4000 次计数后就会中断一次。由于时钟频率是一秒钟计数2000 次,因此只要2 秒钟,就会中
    断一次。
    还有一个需要注意的,就是我们一般采用向上计数模式。

     

    接下来,就是占空比的配置了,注意下面这一句话:

    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式

     

    已经选择定时器为pwm1,所以下面直接给TIMx_CCRx赋值就可以了。在pwm1模式下,IMx_CCRx的值越大,占空比就越大。

    TIMx_CCRx寄存器,确定PWM的占空比。TIMx_CCR1—TIMx_CCR4确定定时器的CH1—CH4四路PWM的占空比。直接给该寄存器赋0—65535值即可确定占空比。占空比计算方法:TIMx_CCRx的值除以ARR寄存器的值即为占空比,因为占空比在0—100%之间,所以一般TIMx_CCRx寄存器值不能超过ARR寄存器的值,否则可能会引起PWM的频率或占空比的准确性。

     

    好了,下面就是我自己写的并理解的程序了,只是简单的输出占空比

    复制代码
    #include "stm32f10x.h"
    
    void gpio_init(void);///tim3的ch1,在pa6上面
    void TIM2_init(void);
    
    int  main(void)
    {
      gpio_init();
        TIM2_init();
        while(1);
    
    }
    
    
    void gpio_init()
    {
        GPIO_InitTypeDef GPIO_InitStructure;
    
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE); 
    
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 
        GPIO_Init(GPIOA, &GPIO_InitStructure);
    
        TIM2_init();
    
    }
    
    void TIM2_init()
    {
        TIM_TimeBaseInitTypeDef        TIM_TimeBaseStructure;
        TIM_OCInitTypeDef              TIM_OCInitStructure;
    
         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
    
        //PWM频率 = 72000000 / 4 / 1000 = 18Khz
        TIM_TimeBaseStructure.TIM_Period = 1000 - 1; //PWM计数上限     
        TIM_TimeBaseStructure.TIM_Prescaler = 4 - 1; //设置用来作为TIM2时钟频率除数的预分频值,4分频
        TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIMx向上计数模式
        TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseStructure中指定的参数初始化外设TIM2
        
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
        TIM_OCInitStructure.TIM_Pulse = 200; //设置待装入捕获比较寄存器的脉冲值
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高
        
        TIM_OC1Init(TIM3, &TIM_OCInitStructure); 
        TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能TIM2在CCR1上的预装载寄存器
    
        TIM_ARRPreloadConfig(TIM3, ENABLE); //使能TIM2在ARR上的预装载寄存器
        TIM_Cmd(TIM3, ENABLE);  //使能TIM2外设
    }
    复制代码

     

    固定的pwm波,实验证实,这里不需要中断函数,定时器会自动重装数值,32真是强大在这里啊。定时器自带BGM.

     

    展开全文
  • pwm最后的解释

    2017-03-04 14:05:00
    之前学东西总是模模糊糊,看了pwm,虽然知道怎么配置,但是如果我自己去写个pwm的程序,我却不知如何下手。 不知道如何配置他的频率和占空比。今天痛定思痛,决定彻底搞懂pwm。 百度给 的答案是: pwm...

    之前学东西总是模模糊糊,前几天看了pwm,虽然知道怎么配置,但是如果让我自己去写一个pwm的程序,我却不知如何下手。

    不知道如何配置他的频率和占空比。今天痛定思痛,决定彻底搞懂pwm。

    百度给 的答案是:

    pwm的频率是指每秒钟信号从高电平到低电平再回到高电平的次数,占空比是高电平持续时间和低电平持续时间之间的比例。
    pwm的频率越高,其对输出的响应就会越快,频率越低输出响应越慢。

    首先pwm要知道他的频率,频率该如何设定呢?

    看了这一位博主的文章让我名表了很多:http://blog.csdn.net/huang_jinjin/article/details/7292166?locationNum=6&fps=1

    他的最后有这一段话,不分频的话,时钟是72mhz,就是每秒计数72m,而TIM_Period就是定义了pwm的一个周期记的次数,比如说是2000,就是经过2000/72m这个时间是一个周期,

    那么频率就是周期的倒数,这个pwm的频率就是72m/2000(hz),这样就确定了频率。

    那么TIMx_ARR寄存器的值是怎样来确定pwm的频率的呢?TIM_Period(即是TIMx_ARR寄存器的值) 的大小实际上表示的是需要经
    过TIM_Period 次计数后才会发生一次更新或中断。接下来需要设置时钟预分频
    数TIM_Prescaler,这里有一个公式,我们举例来说明:例如时钟频率=72MHZ/(时
    钟预分频+1)。(假设72MHZ为系统运行的频率,这里的时钟频率即是产生这个pwm的时钟的频率)说明当前设置的这个TIM_Prescaler,直接决定定时器的时钟频率。
    通俗点说,就是一秒钟能计数多少次。比如算出来的时钟频率是2000,也就是
    一秒钟会计数2000 次,而此时如果TIM_Period 设置为4000,即4000 次计数后就会中断一次。由于时钟频率是一秒钟计数2000 次,因此只要2 秒钟,就会中
    断一次。
    还有一个需要注意的,就是我们一般采用向上计数模式。

     

    接下来,就是占空比的配置了,注意下面这一句话:

    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式

     

    已经选择定时器为pwm1,所以下面直接给TIMx_CCRx赋值就可以了。在pwm1模式下,IMx_CCRx的值越大,占空比就越大。

    TIMx_CCRx寄存器,确定PWM的占空比。TIMx_CCR1—TIMx_CCR4确定定时器的CH1—CH4四路PWM的占空比。直接给该寄存器赋0—65535值即可确定占空比。占空比计算方法:TIMx_CCRx的值除以ARR寄存器的值即为占空比,因为占空比在0—100%之间,所以一般TIMx_CCRx寄存器值不能超过ARR寄存器的值,否则可能会引起PWM的频率或占空比的准确性。

     

    好了,下面就是我自己写的并理解的程序了,只是简单的输出占空比

    #include "stm32f10x.h"
    
    void gpio_init(void);///tim3的ch1,在pa6上面
    void TIM2_init(void);
    
    int  main(void)
    {
      gpio_init();
        TIM2_init();
        while(1);
        
    }
    
    
    void gpio_init()
    {
        GPIO_InitTypeDef GPIO_InitStructure;
        
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE); 
        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 
        GPIO_Init(GPIOA, &GPIO_InitStructure);
    
        TIM2_init();
        
    }
    
    void TIM2_init()
    {
        TIM_TimeBaseInitTypeDef        TIM_TimeBaseStructure;
        TIM_OCInitTypeDef              TIM_OCInitStructure;
        
         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
        
        //PWM频率 = 72000000 / 4 / 1000 = 18Khz
        TIM_TimeBaseStructure.TIM_Period = 1000 - 1; //PWM计数上限     
        TIM_TimeBaseStructure.TIM_Prescaler = 4 - 1; //设置用来作为TIM2时钟频率除数的预分频值,4分频
        TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIMx向上计数模式
        TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseStructure中指定的参数初始化外设TIM2
        
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
        TIM_OCInitStructure.TIM_Pulse = 200; //设置待装入捕获比较寄存器的脉冲值
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高
        
        TIM_OC1Init(TIM3, &TIM_OCInitStructure); 
        TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能TIM2在CCR1上的预装载寄存器
    
        TIM_ARRPreloadConfig(TIM3, ENABLE); //使能TIM2在ARR上的预装载寄存器
        TIM_Cmd(TIM3, ENABLE);  //使能TIM2外设
    }

     

    固定的pwm波,实验证实,这里不需要中断函数,定时器会自动重装数值,32真是强大在这里啊。定时器自带BGM.

     

    转载于:https://www.cnblogs.com/qsyll0916/p/6501224.html

    展开全文
  • 开始学习JAVA

    2013-05-25 20:50:25
    在干过工作计算机和网络维护以及信息库数据采集后,正式接到网站建设任务,我意识到要学点JAVA了,接下去,最好能在短时间内掌握JSP,这是个不小的挑战,毕竟已经3年没怎么碰代码了。  在看了一些教程后...
  • 目睹车祸

    2007-12-16 01:35:45
    的天气还是好好的, 然而今天空中飘起了细雨,气温突然寒冷起来,风飕飕的刮在脸上是冰冷的刺骨... 刚回到家就听到家人在议论什么,好不热闹"辆大卡车出车祸拉" 怎么又出事了,这一节的交通真是太乱了.时间在...
  • 怎么样设置才能列的每个单元格只能输入12位 如何工作表奇数行背景是红色偶数行背景是蓝色 计算特定的组单元格中,满足条件的单元格的个数 把文本格式的数字转换成真正的数字 设置页码 Excel表格里如何插入...
  • 疯狂的程序员

    热门讨论 2012-07-18 18:05:32
    他是这么幻想的:有一天,他穿着笔挺的西装,打好领带,掏出名片,彬彬有礼地递给土匪,上面赫然印着:XX广告公司XXXX大学总代理。就这个派头,告诉土匪他们:你们也就只配摆路边摊卖笔芯。比如卖车的找个好的造车的...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    怎么样设置才能列的每个单元格只能输入12位 如何工作表奇数行背景是红色偶数行背景是蓝色 计算特定的组单元格中,满足条件的单元格的个数 把文本格式的数字转换成真正的数字 设置页码 Excel表格里如何插入...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    1.24 我在个文件中定义了个extern数组,然后在另个文件中使用,为什么sizeof取不到数组的大小? 声明问题 1.25 函数只定义了次,调用了次,但编译器提示非法重声明了。 *1.26 main的正确定义是什么...
  • 3.5.5 时分秒针在一天之类重合多少次?(24小时) 3.5.6 将多个集合合并成没有交集的集合。 3.5.7 平面内有11个点,由它们连成48条不同的直线,由这些点可连成多少个三角形? 腾讯篇 Java基础 4.1.0 JAVA中的...
  • 一天到晚给该厂商打电话求援。该厂商声称内核B是用C语言写的,可我还得用汇编语言给程序中每个对象除实话,虽然该厂商很耐心,而我实在是烦透了!产品的开发也耽误了。我真是不想再花时间去调试那个廉价的内核了。...
  • c#学习笔记.txt

    2008-12-15 14:01:21
    另外他对我上集中说Microsoft越来越不要脸也极为生气,因为相比之下,Sun也不怎么样,微软已经将C#提交设在日内瓦的ECMA(European Computer Manufacturers' Association,国际标准化机构欧洲电子计算机工业会)并...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    你难免会遇到各种各样的问题,有些可能你百思不得其解,甚至翻遍图书馆,也找不到问题的答案。 《你必须知道的495个C语言问题》的出版填补了这空白。许多知识点的阐述都是其他资料中所没有的,弥足珍贵。 涵盖...

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

怎么让时间回到一天前