STM3F1系列的USART1、2、3和UART4、5功能上稍有不同,前三者是USART为”通用同步/异步串行接收/发送器”,UART为” 通用异步串行接收/发送器”,都当做UART来使用时没有区别,详见百度。调试过程中常常遇到同样的代码在USART1、2、3上完全正常,在UART4和UART5上却会出现发送或接收卡死、只能发送无法接收的异常情况。总结起来,都是因为对应的中断异常或IO配置错误导致的,描述如下。

        1. 启动文件选用错误。

        即没有选用该芯片对应的启动文件,导致错误的启动文件中根本没有UART4和UART5的中断信息,程序无法进入中断,自然就错误不断了。注:USART1、2、3正常是因为F1系列基本都有这三个串口,故启动文件中也都包含对应信息,而UART4和UART5则只在部分芯片中才有。下表为不同芯片对应的启动文件,供参考。

        2. 串口中断函数名写错。

部分人编写UART4的中断程序时直接用USART1的修改过来的,错将中断函数写成了”void USART4_IRQHandler(void)”,导致程序无法进入中断,复位等异常随之而来。

        3. 串口配置时相关时钟没有启动。

STM32F105RB配置UART4时需要启动三组时钟:对应PORT口时钟,AFIO时钟,UART的时钟,其中UART4是挂在APB1上的,一定要注意。

        4. 将UART4的RX口配置成为了浮空输入模式,同时打开了RX中断。

如果单片机在PCBA上有外置上拉或者接到接收端的IO口上,则不会有异常出现。如果你在调试程序且IO口没有接任何电路,则串口发送数据时会莫名其妙的进入接收中断,数据发送出现各种奇怪情况。将RX改位上拉模式或关闭RX中断,则一切正常了,原因就是浮空条件下RX本身就会被反复触发。

STM32F105 UART4 发送异常及解决相关推荐

  1. 域名解析异常如何解决?快解析轻松实现动态域名解析

    域名解析就是把域名解析成一个ip地址,我们大多数人都喜欢记忆域名,但是机器只认识IP地址,只要这个IP地址对应相关域名,这就叫域名解析.工作中常会遇到域名解析故障,比如访问站点对应的IP地址没有问题, ...

  2. java property异常_Java常见的异常和解决的办法

    Java程序设计中我们经常会遇到异常,遇到异常不要浮躁,找到问题的原因解决是很容易的.我们整理了一些异常和解决的方法供大家参考. 1.java.lang.IllegalStateException: ...

  3. Android 常见异常及解决办法

    Ø  前言 本文主要记录 Android 的常见异常及解决办法,以备以后遇到相同问题时可以快速解决. 1.   java.lang.NullPointerException: Attempt to i ...

  4. java 数组越界异常_数组越界异常 求解决!!!

    源自:4-3 滚动状态判断与处理 数组越界异常 求解决!!! package com.example.imooc; import java.io.BufferedInputStream; import ...

  5. ubuntu16.04 安装CAJViewer 以及 安装wine /deepin-wine 图标异常的解决

    ubuntu16.04 安装CAJViewer 以及 安装wine /deepin-wine 图标异常的解决 通过deepin-wine 安装 cajviewer 之前装过deepin-wine 所以 ...

  6. java.io.IOException: Attempted read from closed stream. 异常,解决

    在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决 原因是EntityUti ...

  7. JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法

    JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法 参考文章: (1)JNI调用native方法出现 ...

  8. Delphi的“Invalid pointer operation“异常的解决办法

    Delphi的"Invalid pointer operation"异常的解决办法 参考文章: (1)Delphi的"Invalid pointer operation& ...

  9. HBase scan 时 异常 ScannerTimeoutException 解决

    HBase scan 时 异常 ScannerTimeoutException 解决 参考文章: (1)HBase scan 时 异常 ScannerTimeoutException 解决 (2)ht ...

最新文章

  1. Hadoop概念学习系列之Java调用Shell命令和脚本,致力于hadoop/spark集群(三十六)...
  2. Zend Guard6.0使用教程——PHP代码加密
  3. (笔记)Linux内核学习(五)之中断推后处理机制
  4. php调用以太坊geth API说明
  5. sharemouse切窗口就锁定了什么原因_Excel表格如何锁定,被锁定的表格又该如何解除锁定呢?...
  6. html 抓取 post 请求,javascript – 获取HTML Form Post方法的返回值
  7. 印象笔记 还回快捷_模块化编辑器、OCR、素材库...一大波新功能来袭丨印象笔记7周年现场实况...
  8. oracle存储过程的写法
  9. 团队协作新趋势:语雀——助力更多:个人、企业、博客、协作、托管、画布设计、资源托管(立体化趋势)
  10. SQL SERVER的字段类型说明
  11. 大公司病?记改一个文字颜色的过程
  12. Nature杂志总编辑:如何培养一个有价值的研究者
  13. Telink 825x 蓝牙开发笔记1
  14. 同步时序逻辑电路功能分析之同步五进制加法计数器
  15. 字符集详解(一看就懂系列)
  16. 模仿微信九宫格、查看大图
  17. Android自定义View实现方位刻度尺(类似于吃鸡手游)
  18. linux三种网络模式
  19. 网络流量大数据分析平台(2)
  20. iphone试用手记

热门文章

  1. 【人工智能】群智能算法
  2. 机器学习之PQ量化算法
  3. InputStream与OutputStream归纳
  4. 怎样做网络推广浅析网站标题如何写更利于SEO?
  5. 【图像分类损失】Encouraging Loss:一个反直觉的分类损失
  6. STM32的中断优先级详解
  7. 请求头(request headers)和响应头(response headers)解析
  8. 常见的header头
  9. Scalar类-颜色类
  10. clear:both在HTML页面中的用法