zoukankan      html  css  js  c++  java
  • STM32 控制红外线收发


    买了一块STM32的板子,这次需要将IR的code移植到STM32上面,因为STM32成本比树莓派低得多,所以

    一些简单的外设挂在STM32上就行了。

    我买的板子的型号是STM32F103C8T6,价格还是挺便宜的。另外,红外模块采样自己搭建的模块,可以自己控制距离,在上一篇博文中有所提到。先来一张图:




    既然已经有了成功的案例,只要将之前的代码移植过来就行了。底层的实现有两个不一样,一个是时钟,另一个是PWM。对于时钟来说,delay.c里面有实现的源码,通过配置SysTick来实现延时。这里通过查询的方式来查询是否到了目标的时间,为了后续多个外设的运行,可以考虑将其改成TIM中断来实现。




    对于PWM来说,需要调用到PWMx或者PWM1,因为STM32中PWM的原理比较复杂,所以先使用

    现成的code来实现,这里采用了(http://blog.sina.com.cn/s/blog_49cb42490100s6uh.html) 的代码

    实现,并且删除了无用的code。因为TIM的输入时钟为72M/2*2 = 72M,所以是足够产生38K PWM的。



    跟树莓派一样,这里使用的示例代码也有相应的延迟,为十多个us。不过可以通过补偿来实现。

    48us_stm32_openpwm.png




    开的时候加入13us,关的时候加入15us。


    相应的代码已传到github上:

    https://github.com/tanhangbo/stm32_iot

    入口代码为 test.c








  • 相关阅读:
    PHP开发者常犯的MySQL错误
    linux 用户管理
    php中mysql数据库异步查询实现
    PHP 安全相关 简单知识
    js倒计时 网上流传最多的
    TP学习笔记
    Java Map
    Java集合技巧
    Java集合之HashSet/TreeSet原理
    Java Set
  • 原文地址:https://www.cnblogs.com/tanhangbo/p/4740702.html
Copyright © 2011-2022 走看看