STM32F103VET6多串口调试

发布者:annye_cheng最新更新时间:2019-08-28 来源: eefocus关键字:STM32F103VET6  多串口  调试 手机看文章 扫描二维码
随时随地手机看文章

公司最近在做一个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区间。



关键字:STM32F103VET6  多串口  调试 引用地址:STM32F103VET6多串口调试

上一篇:STM32 HAL库学习(二) 串口收发数据
下一篇:STM32F429 CAN通信不成功

推荐阅读最新更新时间:2024-11-12 04:23

PIC16F877定时器0的查询方式调试
PIC16F877单片机定时器0的查询方式调试程序如下: #include pic.h #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31); void init(void); uint intnum; void main(void) { init(); while(1) { if(T0IF) { T0IF = 0; if(++intnum =1953) { intnum = 0; RD0 = !RD0; } } } } void init(void) { TRISD =
[单片机]
LCD1602几种调试方法(NIOSii)
#include system.h #include stdio.h int main (void) { FILE *lcd1; lcd1 = fopen( /dev/lcd , w ); if (lcd1 == NULL) printf( lcd not ready...n ); else { printf( lcd ready...n ); fprintf(lcd1, 111111111111111111111n ); } fclose(lcd1); printf( can you see something? ); return 0; } #include system.h #include altera_av
[单片机]
低速串行总线信号的采集解码和调试
       验证低速串行总线信号需要的不仅仅是简单的电压vs时间波形的测量LeCroy 示波器 拥有多种对于串行总线的分析和触发能力,最大限度增加工程师对于串行总线信号验证的信心。本文将介绍一些列串行总线信号的采集,观测,解码和调试,包括的协议有:RS232, generic UARTs, 12C, CAN,Flexray, LIN, ARINC 429, MIL-STD-1553, MIPI D-PHY, DigRF 3G, DigRFv4 and Audio applications (12S, LJ, RJand TDM).        低速串行总线        近年来,低速串行总线在产品研发和终端产品市场中不断涌现,其
[嵌入式]
门禁系统485总线结构布线及调试
  第一章 澄清几个概念:   概念一: 485总线的通讯距离可以达到1200米.   其实只是485总线结构理论上 在理想环境的前提下才有可能使得传输距离达到1200米.一般是指通讯线材优质达标,波特率9600,只有一台485设备才能使得通讯距离达到1200米,而且能通讯并不代表每次通讯都正常.所以通常485总线实际的稳定的通讯距离远远达不到1200米. 负载485设备多,线材阻抗不合乎标准,线径过细,转换器品质不良,设备防雷保护,波特率的加高等等因素都会降低通讯距离.   概念二: 485总线可以带128台设备进行通讯.   其实并不是所有485转换器都能够带128台设备的.要根据485转换器内芯片采用的型号和485设备芯片采
[嵌入式]
PLC调试再续——PLC程序现场调试
PLC程序现场调试指在工业现场,甩有设备都安装好后,所有连接线都接好后的实际调试。也是PLC程序的最后调试。    现场调试的目的是,调试通过后,可交给用户使用,或试运行。    现场调试参与的人员较多,要组织好,要有调试大纲。依大纲,按部就班地一步步推进。开始调试时,设备可先不运转,甚至了不要带电。可随着调试的进展逐步加电、开机、加载,直到按额定条件运转。具体过程大体是: 1)、要查接线、核对地址。要逐点进行,要确保正确无误。    可不带电核对,那就是查线,较麻烦。也可带电查,加上信号后,看电控系统的动作情况是否符合设计的目的。 2)、检查模拟量输入输出。    看输入输出模块是否正确,工作是否正
[嵌入式]
使用混合信号或混合域示波器的数字调试技巧
混合信号示波器是一种确定信号逻辑值高还是逻辑值低的数字电,如何进行调试呢,下面安泰测试Agitek就给大家介绍调试混合信号示波器的方法吧! 调试混合信号示波器的方法: 修检不触发故障主板时,使用示波器测晶振是否起振 发生电机不亮的故障时,要测量各大主板的供电是否正常,正常工作时的波形为脉冲方波。 发生主板不亮的故障时,检测主板中的各时钟是否正常,正常工作时为一个正弦波。 对于能跑CPU档内存的板,测试内存总线是否正常 对于跑码正常不显显的主板,测试行场同步信号
[测试测量]
使用混合信号或混合域示波器的数字<font color='red'>调试</font>技巧
串口0作为调试端口,怎么改变为接收数据接口
我们在使用嵌入式linux调试板子时候必须要有调试接口,一般是串口0. 我就以我使用的S3C2416的板子为例: 启动u-boot打印如下: SMDK2416 # printenv bootcmd=nand read c0008000 900000 300000;bootm c0008000 bootdelay=3 baudrate=115200 ethaddr=00:40:5c:26:0a:5b gatewayip=192.168.1.1 netmask=255.255.255.0 bootargs=root=/dev/mtdblock3 rootfstype=yaffs2 init=/init console=ttySAC
[单片机]
使用Jlink仿真及ADS1.2调试(ok2440)
1.将Jlink PC ok2440连接起来 2.给ok2440上电 3.打开Jlink程序中的J-link ARM v4.08k(可观察到jlink的型号及CPU的各种参数) 并打开DNW 按任意键不要让开发板进入操作系统 4.打开ADS CodeWarrior for ARM 载入镜像 可先将工程中的code值先去除 project-remove project code 在点make按钮 在弹出的窗口中没错误后可 点debug来调试 进入AXD 在options-configure target中选择multi-ICE 确定 进入 然后load image-全速执行也可以单步执行(在使用ADS仿真时先要对ADS进
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved