公司最近在做一个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多串口调试
推荐阅读最新更新时间:2024-11-17 16:45
ST推出袖珍级别调试探头,加快STM32应用开发
意法半导体的新调试探头STLINK-V3MINI兼备STLINK-V3SET的强化功能和独立模块的简便性,可加快代码上传速度,提高接口的易用性,而且价格更实惠。 体积袖珍,携带方便,新探头可随时随地上传和调试STM32 *微控制器应用软件,利用意法半导体的14引脚STDC14调试电缆连接微控制器,支持虚拟COM端口(VCP)等强化功能。VCP调试代码更省事、更灵活,例如,可以在PC上轻松观察运行时数据,调试操作变得更快、更明确。 支持大容量存储是STLINK-V3MINI的另一个功能,通过简单的鼠标拖放操作,可直接通过探头上传文件,快速验证新的创意点子,或运行各种演示程序,把开发工作变得更轻松。 此外,STLIN
[嵌入式]
基于ARM的热敏电阻温度计的设计
1 引 言 随着半导体技术的不断发展,热敏电阻作为一种新型感温元件应用越来越广泛。他具有体积小、灵敏度高、重量轻、热惯性小、寿命长以及价格便宜等优点。 传统的热敏电阻温度计硬件上大多采用普通单片机(MCS-51系列)+A/D转换器以及LED显示模块构成,分立元件多、功耗大、设计复杂且难以调试;软件上也多采用冗长繁琐的汇编语言来实现,设计效率低、可移植性差、性能难以保证。 目前,嵌入式系统的应用已经进入到一个高、低端并行发展的阶段,其标志就是32位微控制器的发展。ARM(Advanced RISC Machines)是嵌入式系统应用比较广泛的一种32位微处理器核,具有体积小、功耗低、集成度高、硬件调试方便和可移植操作系统等优点
[测试测量]
微控制器的功耗调试:找出能量泄漏,降低嵌入式系统功耗
功耗调试技术使软件工程师得以了解嵌入式系统的软件对系统功耗的影响。通过建立源代码和功耗之间的联系,使得测试和调整系统功耗成为可能,即所谓功耗调试。传统上,降低功耗仅是硬件工程师的设计目标;然而在实际运行的系统中,功耗不仅取决于硬件的设计,而且还与硬件如何被使用有关,而后者则是由系统软件来控制的。 图1:IAR Systems的C-SPY调试器能够在不同的视图中显示静态和动态的功耗数据。 功耗调试技术基于对功耗进行采样,并建立每个采样数据与程序的指令序列(以及源代码)之间的关联。其中的难点之一在于实现高精度的采样。理想情况下,对功耗的采样频率应该与系统时钟相同,但系统中的电容性元件会降低此类测量的可靠性。从软件工程师
[单片机]
使用示波器进行验证和调试
验证(VerificaTIon),就是测试设计是否和它对应的各种标准(行业标准或者自定义标准)相符,以及有多少冗余量。验证和调试,是示波器的主要用途。 在使用示波器进行调试时,我们关心的主要指标是: 波形捕获率——决定仪器能够多快发现故障 触发系统——决定仪器能够多精确地定位故障 分析能力——决定仪器能够从波形里提取出多少有用信息。 而在使用示波器进行验证时,我们更关心的指标是:信号保真度——决定采集的样点是否能够真实反映信号特性;采样率和内存深度——决定单次捕获可以以多快的速度以及抓取多少样点供验证测试;分析工具——决定深入分析的程度和准确性。 信号保真度是一个比较复杂的问题,涵盖了示波器的带宽、采样率、内插、抖动噪底、
[测试测量]
AVR单片机串口多机通讯程序
在多机通信过程中,所有设备的 RS232接口是并在通信线上的,其中只能有一个设备为主机,其他为从机,通信由主机发起。数据帧一般采用1位起始位、9位数据位,其中第9位(RXB8)被用作为表征该帧是地址帧还是数据帧。当帧类型表征位为“1”时,表示该帧数据为一个地址帧;当帧类型表征位为“0”时,表示这个帧为一个数据帧。 在AVR中,通过设置从机的UCSRA寄存器中标志位MPCM,可以使能USART接收器对接收的数据帧进行过滤的功能。如果使能了过滤功能,从机接收器对接收到的那些不是地址信息帧的数据帧将进行过滤,不将其放入接收缓冲器中,这在多机通信中有效的方便了从机MCU处理数据帧程序的编写(同标准51 结构相比)。而发送器则不受MPC
[单片机]
S3C2416裸机开发系列十_串口打印调试
在嵌入式软件开发过程中,往往都会用到串口进行打印信息以跟踪调试代码的运行。只要在代码的关键位置加入打印函数,即可分析代码在这一位置的关键参数是否正确,运行状态是否无误以及相关的出错信息。通过串口线连接PC端COM口与开发板的UART即可实现开发板与PC机的通信。在代码调试阶段,开始板的状态信息通过串口打印显示在PC端屏幕,可以一目了然,是一种非常重要的调试手段。笔者此处就s3c2416的串口打印使用作一个简单的介绍。 1. UART模块实现 1.1. UART初始化 在使用任何外设前,一般都是需要对外设初始化。UART也不例外,使用前需设置波特率、通信控制、通信的处理方式(中断还是查询)等。设置波特率为115200,8位数据,
[单片机]
Proteus 与 kilec51联机调试入门实验
昨天开始搞kilec51与Proteus 联机的调试,首先软件得自己从网上下下了你的还会装,开始下了哥 kile 2.0的,进行联机调试,可就是不行;问题是kile运行中不会出现startup.a51这个东东好郁闷,换到3.0就行了;应该是我下的那个版本不行;今天晚上终于把联机小实验调通了,以后就可以全心全意的进行单片机仿真了;以下是我的实验,至于具体Proteus 与 kilec51的具体设置,咱会在下一篇说明:(好高兴) 这是在Proteus 中做的简单图 用单片机AT89C51 1K电阻 LED-RED 5V电源 做成的; 相信对于Proteus 这是一张简单的图,但是这个是可以仿真的,从电路上我们知道只要给P2
[单片机]
采用JLink+ADS1.2调试uboot的方法
刚开始想通过Nor Flash中的supervivi+DNW的“Download & Run 功能”将uboot.bin下到SDRAM进行调试,但是由于笔记本已经被装成ubuntu + Virtualbox(Windows XP),将supervivi阶段的USB下载设备分配进Virtualbox(Windows XP)后提示“不能分配 USB设备 System MCU SEC S3C2410X Test B/D 到虚拟电脑 Windows XP Workstation.Failed to create a proxy device for the USB device. (Error: VERR_READ_ERROR).”,而
[单片机]