历史上的今天
今天是:2024年08月28日(星期三)
2019年08月28日 | STM32F103VET6多串口调试
2019-08-28 来源:eefocus
公司最近在做一个STM32的项目,需要同时使用STM32的3个usart口和2个uart口。
一、知识准备
(1)芯片具体型号,我调试的是 STM32F103VET6
(2)芯片使用的晶振是多少兆,常用的有8MHz、12MHz、25MHz,我调试的是8MHz外部晶振
(3)端口对应管脚
二、基础代码编写
1、时钟设置
(1)初始化系统时钟,选择时钟源(内、外部时钟),设置各条总线的时钟源及频率
(2)打开对应外设时钟,usart1和其它几个串口不在同一条时钟总线上
(3)打开对应串口管脚所在总线时钟
2、串口GPIO口设置
3、串口基本参数设置(波特率、校验位、停止位等)
4、串口中断优先级设置(抢占优先级和子优先级)
5、编写串口中断服务函数
三、调试程序
写完一个串口,调试一个串口。不要全写完最后调试。在调试过程中usart1工作正常,其它串口输出乱码。
问题分析:
(1)波特率出现问题
1)波特率配置出现问题
2)时钟配置出现问题
反复检查时钟和波特率配置并没有问题,然后下班了。第二天到公司突然意识的TTL和232电平的区别。一般的USB转串口线出来的是232电平,后来我换用USB转TTL电平输出数据成功。
PS:
(1)232电平是-3— -15V代表逻辑“0”,3-15V代表逻辑“1”
(2)TTL电平是0-5V区间。
史海拾趣
|
嵌入式系统是专用计算机应用系统,它具有一般计算机组成的共性,也是由硬件和软件组成。 图1-1完整地描述了嵌入式系统的软硬件各部分的组成结构。 字串8 2.1 嵌入式系统的硬件基本结构 嵌入式系统的硬件架构如图1-1下半部分所示,是以嵌入 ...… 查看全部问答> |
|
我用的是三星44B0 1、 假如一个I/O口如G口被设置成输出,同时在G口上又外接着3.3v的电压,那么G口的数据寄存器 PDATG始终是高电平吗? 这里我很不解,G口已经被设置成输出,那么就是CPU往数据寄存器PDATG上写 数据然后输出去,但是这外接的3.3V ...… 查看全部问答> |
|
我在用keil c51编辑c程序中 在一个项目中新建了两个文件 一个是C51a.c 一个是C51b.c 我在C51b.c中include \"C51a.c\"; 这样就没问题了 如果把C51a.c改成C51a.h这样keil C51就找不到这个文件了 找到了也加不上 请问大侠这是怎么回事啊? … 查看全部问答> |
|
问题请教:ARM板串口接GSM模块 ARM板和GSM模块都是母头 是不是买根两头都是公头的线就行了 ?我买了条 GSM接不到数据 是不是线有问题? 是需要交叉线么?… 查看全部问答> |
|
用st的usb库,但不知道如何检测发送完成?现在我用 while(GetEPTxStatus(ENDP1) != EP_TX_NAK); 但有些情况这个判断不行,现在只能在发送后加延时来解决。特向大家请教如何直接来判断?… 查看全部问答> |
|
/ 2011-11-25 条码 bar code由一组规则排列的条、空及其对应字符组成的标记,用以表示一定的信息。条码系统 bar code system由条码符号设计、制作及扫描阅读组成的自动识别系统。条 bar条码中反射率较低的部分 ...… 查看全部问答> |




