zoukankan      html  css  js  c++  java
  • UC驱动蜂鸣器

    做这个调试,是为了好几天没有使用STM32了,怕手生,所以就在系统中添加了一个小项目...

    目标:让蜂鸣器响就行.....

    之前我们我们以为在移植时加入了LED的闪烁,我们这次在LED的闪烁时,加入蜂鸣器的驱动......

    在听完2遍的课程之后,突然感受,基础是最关键的....在能够调用标准库后,就已经可以做很多东西了....

    裸机运行,只能一条线的往前走,运行完一个才能接住运行下一个...

    加入系统,是为了多任务并行,说是并行,其实是宏观上并行,微观上实质上也是串行的...

    并行...系统为了调度任务...把任务切成一小块一小块的运行,就是A任务运行一会,B任务运行一会,C任务运行一会,之后在A任务运行,就是循环,当然了系统为了加入了优先级,通过优先级就可以安排谁先运行,还有就绪态,查找任务是否就绪等等....

    接下来我们就接着说说是如何添加蜂鸣器的....

    为了便于管理,我们先建立蜂鸣器的驱动文件...建立beep.c与beep.h,

    在.c中初始化pin,我们在原理图中查看,蜂鸣器的管脚为GPIOC的0pin.....

    其中注意的是在keil的编译环境下无参数传入的时候,在()内些void....否则会报出警告的...

     在.h中做声明...

     驱动就这样做好了......

    接下来是任务创建

    与LED一样,我们在static  void App_TaskStart(void* p_arg){.........}中添加任务...配置任务...可以进行调度

    //App_TaskCreate();蜂鸣器
    OSTaskCreate((void (*) (void *)) App_TaskUser2,
    /* Create the start task. */
    (void *) 0,
    (OS_STK *) &App_TaskBEEPStk[APP_TASK_BEEP_STK_SIZE - 1],
    (INT8U) APP_TASK_BEEP_PRIO);

    创建任务内容:

    static  void App_TaskUser2(void* p_arg){.......}实际内容就是:

    while (DEF_TRUE)
    {
    GPIO_SetBits(GPIOC, GPIO_Pin_0);
    OSTimeDlyHMSM(0, 0, 0, 100);
    GPIO_ResetBits(GPIOC, GPIO_Pin_0);
    OSTimeDlyHMSM(0, 0, 00, 1000);
    GPIO_SetBits(GPIOC, GPIO_Pin_0);
    OSTimeDlyHMSM(0, 0, 0, 100);
    GPIO_ResetBits(GPIOC, GPIO_Pin_0);
    OSTimeDlyHMSM(0, 0, 00, 100);
    printf("任务二");
    }

    控制GPC0端口,与LED是一样的......

    这个熟练了,之后我们可以继续学一写其他的驱动了.....

  • 相关阅读:
    Hadoop WordCount改进实现正确识别单词以及词频降序排序
    两个栈实现一个队列
    数据库弱一致性四个隔离级别
    vs2008生成lib文件
    开始整理资料
    基于AKS素性检测的素数生成器
    生成指定位数的随机数
    Windows 7远程桌面 重启 关机 任务管理器 命令
    摩根IT实习经验谈及其他
    Hadoop下进行反向索引(Inverted Index)操作
  • 原文地址:https://www.cnblogs.com/qq376142178/p/12862868.html
Copyright © 2011-2022 走看看