zoukankan      html  css  js  c++  java
  • 8-HC32F460(华大单片机)-串口(定时器空闲检测)

    <p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnHC32F460" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

    串口空闲中断

    串口发送数据的时候都是一条一条发送的.

    单片机判断接收完一条数据一般做法是:

    在接收数据的过程中,如果超过一段时间没有新的数据过来,就认为前面接收完了一条数据.

    然后再去处理数据.

    关于此单片机的空闲中断

    感觉这单片机的功能制作是总结了项目经验之后做的.

    这个单片机使用的是单独的定时器去配置超时时间, 

    定时器0的第一路的A通道作为串口1的串口接收超时定时器

    定时器0的第一路的B通道作为串口2的串口接收超时定时器

    定时器0的第二路的A通道作为串口3的串口接收超时定时器

    定时器0的第二路的B通道作为串口4的串口接收超时定时器

    直接看程序

    1.我使用的是串口1. 首先看定时器配置

    配置定时器0的第一路的通道A

    我设置的定时时间是10ms左右, 那么串口空闲接收超时时间就是10ms

    最后是启动硬件触发(启动硬件触发其实内部默认就是串口1去触发)

    2.串口配置

    串口和先前的例程没有大的区别,但是要注意需要让其输出时钟信号

    然后呢加上串口空闲中断

    我在中断里面是设置led翻转

    测试

    把这节程序下载到开发板,然后使用调试助手给单片机串口1发送数据

    会观察到,每次发送完数据,开发板上的小灯就会翻转

    提示

    定时器0以后就不要使用了哈....

    用别的定时器吧

    其它串口例程参考官方例程(后面不一定写串口中断发送和DMA的例程)

  • 相关阅读:
    Xshell6提示“要继续使用此程序,您必须应用最新的更新或使用新版本”的解决办法
    设置UIImage的边框和圆角大小以及颜色
    CATransition使用
    [转]C/C++中extern关键字详解
    New ipad与ipad2有何不同
    使用Xcode收藏自己常用的代码模板
    objectivec 关于 self 的用法总结
    查找 EXC_BAD_ACCESS 问题根源的方法
    结构体的对齐方式
    添加three20模板的方法
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/15442818.html
Copyright © 2011-2022 走看看