STM32F105 UART4 发送异常及解决
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 发送异常及解决相关推荐
- 域名解析异常如何解决?快解析轻松实现动态域名解析
域名解析就是把域名解析成一个ip地址,我们大多数人都喜欢记忆域名,但是机器只认识IP地址,只要这个IP地址对应相关域名,这就叫域名解析.工作中常会遇到域名解析故障,比如访问站点对应的IP地址没有问题, ...
- java property异常_Java常见的异常和解决的办法
Java程序设计中我们经常会遇到异常,遇到异常不要浮躁,找到问题的原因解决是很容易的.我们整理了一些异常和解决的方法供大家参考. 1.java.lang.IllegalStateException: ...
- Android 常见异常及解决办法
Ø 前言 本文主要记录 Android 的常见异常及解决办法,以备以后遇到相同问题时可以快速解决. 1. java.lang.NullPointerException: Attempt to i ...
- java 数组越界异常_数组越界异常 求解决!!!
源自:4-3 滚动状态判断与处理 数组越界异常 求解决!!! package com.example.imooc; import java.io.BufferedInputStream; import ...
- ubuntu16.04 安装CAJViewer 以及 安装wine /deepin-wine 图标异常的解决
ubuntu16.04 安装CAJViewer 以及 安装wine /deepin-wine 图标异常的解决 通过deepin-wine 安装 cajviewer 之前装过deepin-wine 所以 ...
- java.io.IOException: Attempted read from closed stream. 异常,解决
在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决 原因是EntityUti ...
- JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法
JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法 参考文章: (1)JNI调用native方法出现 ...
- Delphi的“Invalid pointer operation“异常的解决办法
Delphi的"Invalid pointer operation"异常的解决办法 参考文章: (1)Delphi的"Invalid pointer operation& ...
- HBase scan 时 异常 ScannerTimeoutException 解决
HBase scan 时 异常 ScannerTimeoutException 解决 参考文章: (1)HBase scan 时 异常 ScannerTimeoutException 解决 (2)ht ...
最新文章
- Hadoop概念学习系列之Java调用Shell命令和脚本,致力于hadoop/spark集群(三十六)...
- Zend Guard6.0使用教程——PHP代码加密
- (笔记)Linux内核学习(五)之中断推后处理机制
- php调用以太坊geth API说明
- sharemouse切窗口就锁定了什么原因_Excel表格如何锁定,被锁定的表格又该如何解除锁定呢?...
- html 抓取 post 请求,javascript – 获取HTML Form Post方法的返回值
- 印象笔记 还回快捷_模块化编辑器、OCR、素材库...一大波新功能来袭丨印象笔记7周年现场实况...
- oracle存储过程的写法
- 团队协作新趋势:语雀——助力更多:个人、企业、博客、协作、托管、画布设计、资源托管(立体化趋势)
- SQL SERVER的字段类型说明
- 大公司病?记改一个文字颜色的过程
- Nature杂志总编辑:如何培养一个有价值的研究者
- Telink 825x 蓝牙开发笔记1
- 同步时序逻辑电路功能分析之同步五进制加法计数器
- 字符集详解(一看就懂系列)
- 模仿微信九宫格、查看大图
- Android自定义View实现方位刻度尺(类似于吃鸡手游)
- linux三种网络模式
- 网络流量大数据分析平台(2)
- iphone试用手记