stm32 串口输出问题 [问题点数:200分]

Bbs1
本版专家分:0
结帖率 0%
Bbs1
本版专家分:0
Bbs7
本版专家分:16445
版主
Blank
红花 2013年11月 硬件/嵌入开发大版内专家分月排行榜第一
Blank
黄花 2014年7月 硬件/嵌入开发大版内专家分月排行榜第二
Blank
蓝花 2013年10月 硬件/嵌入开发大版内专家分月排行榜第三
2013年6月 硬件/嵌入开发大版内专家分月排行榜第三
2013年3月 硬件/嵌入开发大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:0
stm32关于串口输出的几种常用方式
在使用<em>stm32</em>做项目时,我们常常会使用到<em>串口</em>调试,通过<em>串口</em>来<em>输出</em>我们想要看的相关参数值,这样既方便有快捷。 具体方法有哪些呢,我自己整理了一下,这个也是借鉴别人的用法而已。希望大家可以相互讨论学习。 1、使用printf语句通过<em>串口</em><em>输出</em>我们想要的参数值 具体的用法:使用之前必须包含相应的头文件#include int fputc(int ch, FILE *f) { USART_...
STM32输出调试信息-printf重定向到串口
在STM32调试过程中常常需要将调试信息<em>输出</em>到<em>串口</em>,然后通过<em>串口</em>助手查看<em>输出</em>的调试信息。一般来说,<em>串口</em><em>输出</em>的是指定长度的十六进制字节,对于想打印的调试信息来 说,略显灵活性不足。这时候如果可以将printf重定向到<em>串口</em><em>输出</em>,则能很好的解决这个<em>问题</em>。 关于printf重定向的方法有很多种,这里只讨论一种我认为相对简单实用的方法。其主要方法步骤如下: 1、配置STM32的<em>串口</em>,确保STM32能输
STM32使用keil串口输出中文乱码问题
<em>问题</em>状态:已解决 <em>问题</em>描述:在进行<em>串口</em>实验时,我们发现使用<em>串口</em>调试助手<em>输出</em>的中文全是乱码(不是文件中的中文乱码,是<em>串口</em><em>输出</em>的时候出现乱码),见以下图片:  解决方案: 1.首先在你的文件中找到main.c文件,然后使用记事本打开,然后保存另存为,选择ANSI编码(原来默认的是UTF-8),替换原来文件。 2.然后重新编译工程,下载到开发板,再打开<em>串口</em>调试助手,然后我们发现<em>问题</em>已...
stm32 输出PWM波占空比可由串口控制
<em>stm32</em> <em>输出</em>PWM波占空比可由<em>串口</em>控制
stm32 keil实现串口printf输出中文字符
<em>stm32</em> keil printf <em>输出</em>中文
stm32为什么用printf重定向到串口第一个字符打印不出
<em>stm32</em>用printf函数重定向到<em>串口</em>USART1发现第一个字符没打印出来具体如下: 刚开始修改fputc函数如下: int fputc(int ch,FILE *f) { USART_SendData(USART1,(uint8_t)ch); while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET); return(ch);
容易被大多数人忽视的STM32串口DMA问题
讨论三个<em>问题</em>: 1、什么叫<em>串口</em>DMA 请求; 2、<em>串口</em>简要复习; 3、<em>串口</em>DMA发送流程。   第一 什么叫<em>串口</em>DMA 请求(战舰STM32开发板)   说这个<em>问题</em>之前先简单回顾DMA的基本特性。先导出原子哥的PPT内容:   DMA 全称Direct Memory Access,即直接存储器访问。   DMA传输将数据从一个地址空间复制到另一个地址空间。当CPU初始化
STM32使用官方库串口输出乱码
最近学习STM32开发,申请了一块免费的开发版,按照书上的内容学习,学到USART,发现<em>串口</em><em>输出</em>始终乱码,妈蛋的,搞不懂为啥,代码啥的都是按照书上来的啊,最后搜索很久,发现是外部时钟频率配置错误导致的,库使用默认8MHz晶震,可以通过宏使用25MHz晶震。具体定义在<em>stm32</em>f10x.h文件中#if !defined HSE_VALUE #ifdef STM32F10X_CL #def
STM32-串口通信printf重定向
前言:平时我们进行c语言编程的时候会经常用到printf函数进行打印<em>输出</em>,来调试代码。可是这个printf函数C库已经帮我们实现好了,通常只需要直接调用即可,但是如果在一个新的开发平台,如果库没有帮我们实现好,比如STM32开发板,那么我们怎么实现printf打印<em>输出</em>呢? 话不多说,看代码! main.c: #include "printf.h" int main() { pr
STM32_USART输入输出讲解
今天总结STM32F103<em>串口</em>,以工程实例来讲述。 工程现象:1.间断发送字符           2.接收中断(接收字符,并发送该字符)   软件工程下载地址(360云盘): https://yunpan.cn/cPEI3zyQ7UqJv  访问密码 ee52   讲述分如下几点:   一、初始化始终   这里的“时钟配置”函数在bsp.c文件下面; 使能<em>串口</em>1(RCC
STM32F103 超声波 串口输出数据
    本人小白一个,正在利用课外时间学习32,不久前刚做过超声波实验,但是,几天没碰,感觉忘记了很多。在重新学习的路上,我觉得有必要总结一下,防止自己忘记,同时,也希望能帮助到有需要的人。 话不多说,先上硬货。 #include &quot;cj.h&quot; #include &quot;<em>stm32</em>f10x.h&quot; #include &quot;delay.h&quot; #include &quot;usart.h&quot; unsigned int ...
STM32学习笔记8——串口输出数据丢失问题
项目中采用STM32F103和AD7260进行数据采集。采集后想将数据通过<em>串口</em>逐点<em>输出</em>到上位机,然后查看数据是否正确。AD7260是采用外部中断进行采集的,当AD7260的BUSY<em>输出</em>下降沿后,触发外部中断,这时CPU去采集数据。 <em>串口</em><em>输出</em>部分,我先是这么做的:在中断中采集数据的后面添加printf(<em>串口</em>已经重定向到printf函数)语句,每采集得到一个点后直接printf<em>输出</em>。上位机用软件Ser
STM32F103两种串口输出的方式 学习笔记
#include &quot;<em>stm32</em>f10x.h&quot; #include &quot;<em>stm32</em>f10x_rcc.h&quot; #include &quot;<em>stm32</em>f10x_gpio.h&quot; #include &quot;<em>stm32</em>f10x_usart.h&quot; #include &quot;<em>stm32</em>f10x_crc.h&quot; #include &quot;system_<em>stm32</em>f10x.h&quot; #include &q
stm32发送16进制的数组总结
关于STM32如何<em>串口</em><em>输出</em>16进制的数值,然后在<em>串口</em>调试助手上显示,很多人是用printf(“%02x”,A)语句,但是在<em>串口</em>调试助手上显示的是ACSII码,不是我们要的HEX数据,在这里我们用另外一种方法来在这件事情。 直接用寄存器来做,下面看代码:USART_SendData(USART1,0x00) ; USART_SendData(USART1,0x01) ; USART_SendData
STM32串口打印输出数据时好时坏
用STM32F103<em>串口</em><em>输出</em>数据的时候,一会正常,一会出错。完全没有规律性,怀疑到外部晶振震荡频率不对,于是取消外部晶振,直接用内部时钟,运行程序果然是正常了。...
STM32串口使用printf()没输出东西(Use MicroLib)
STM32<em>串口</em>使用printf()没<em>输出</em>东西(Use MicroLib) 环境:MDK5.10 今天遇到一个<em>问题</em>,使用板子<em>串口</em>例程没有<em>问题</em>能够<em>输出</em>东西,我将板子的例程中关于<em>串口</em>的部分打包成usart.c和usart.h文件,在原例程工程中运行也没<em>问题</em>。于是在MDK5.10中创建了一个新工程,将两个文件加入到新工程中,编译通过,下载运行没有反应,上网发现使用printf()通过<em>串口</em><em>输出</em>需要勾选U
STM32串口打印printf发送中文乱码问题
1、首先要确保使用keil程序正确编译,并且程序经过调试,已经可以正常发送英文字符,但是发送中文字符时乱码。 2、使用记事本打开main.c文件(或其他主程序),点击另存为,在右下方选择编码方式为ANSI,替换原文件即可
STM32串口使用Printf()函数问题
STM32<em>串口</em>使用Printf()函数<em>问题</em> 像操作C语言<em>输出</em>一样操作<em>串口</em>打印
STM32F10x系列串口3 USART3无法使用,一直出现高电平
1、遇到<em>问题</em>别慌,肯定能解决 2、首先检查板子接线什么的有<em>问题</em>没,tx,rx,接反没,杜邦线断没,共地没。 3、好,检查这些都OK后,那么就是程序的<em>问题</em>。 4、一般出现<em>问题</em>的应该是使用PC10,PC11,或者是PD8,PD9,USART3原本引脚是在PB10,PB11,其他的是重映射的,那么<em>问题</em>找到了,该怎么修改程序呢 void uart3_init(u32 bound){ //GPI
stm32用printf函数重定向到串口USART1发现第一个字符打印不出来
int fputc(int ch,FILE *f){USART_SendData(USART1,(uint8_t)ch);while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);return(ch);}然后其他外设配置好之后直接使用printf(“abc&quot;);发现a打印不出来,具体原因为<em>stm32</em>的usart的sr寄存器的TC为初始为1,导...
在STM32中使用printf发送字符串到串口
<em>问题</em>:在使用STM32调试时,经常使用<em>串口</em>发送信息,为了方便调试与<em>串口</em>发送信息,用printf()函数实现通过<em>串口</em>打印信息。1.添加包含printf()函数的头文件:#include “stdio.h” 2.重写 stdio.h 头文件中的 int fputc(int ch, FILE *f) 函数int fputc(int ch, FILE *f) { while (USART_GetF
STM32实战 2.矩阵键盘通过串口3输出
#include &quot;KEY44.h&quot; #include &quot;sys.h&quot; #include &quot;delay.h&quot; #include &quot;usart.h&quot; u8 key_num = 0; int main(void) { uart_init(115200); delay_init(); KEY44_Init(); while(1) { key_num = key44_Scan...
STM32+按键调控PWM输出+串口输出占空比
作者:number007cool 转自:http://blog.chinaunix.net/uid-21658993-id-1820028.html GPIO.c #include "STM32Lib\\<em>stm32</em>f10x.h" #include "hal.h" /********************************************
调试STM32 串口时的 诡异现象
最近在调试STM32F103VCT6的程序 ,先调<em>串口</em>,程序是从正点原子的例程修改过来的,,现在有点事,晚上回家在写
STM32串口发送不正常
很早就知道了这个<em>问题</em>,在<em>串口</em>写入时的速度和发送速度不一样,写入过快会丢失一部分,导致控制不正常。   本文转移到   https://shaynerain.com/<em>stm32</em><em>串口</em>发送不正常/     闻道有先后,术业有专攻   欢迎吐槽 作者: Shaynerain    ...
STM32DAC输出遇到的问题
DATA:2018/12/05: <em>问题</em>: DA<em>输出</em>波形示波器显示正常,使用记录仪后信号被拉低,而且会有其他AD采集口的串扰。 解决方案: 软件:增加ADC的采样周期,串扰<em>问题</em>会有所减小,但不能完全解决;提高DAC<em>输出</em>的驱动能力,DAC<em>输出</em>缓冲打卡,未测试,猜测效果会好转。 硬件:DAC<em>输出</em>端加电压跟随器,所有<em>问题</em>全部解决(加电压跟随器后还是不能<em>输出</em>0V)。 总结:DAC的<em>输出</em>能力可以使用软...
STM32的UART串口2Printf输出和scanf输入(STM32神舟IV号-库函数版)程序,亲测能用
程序内有详细的讲解文档,很好的学习资料,欢迎大家下载学习
STM32中关于串口通信的printf()函数重定向问题
在STM32<em>串口</em>通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到<em>问题</em>,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。 下面就说一下使用printf需要做哪些配置。 有两种配置方法: 一、对工程属性进行配置,详细步骤如下 1、首先要在你的main 文件中 包含“stdio.h” (标准输入<em>输出</em>头文件)。 2、在main文件中重
STM32 串口发不出来数,或全0的问题
开始调试STM32<em>串口</em>的时候,怎么尝试,上位机都只收到0。对照例程自己一步一步写下来都不行。最后无奈,把例程直接全部复制粘贴过来,发现好使了。 后来几次用到<em>串口</em>的时候,又调了几次,貌似发现了一些<em>问题</em>。<em>串口</em>的初始化的顺序会造成<em>输出</em>全0的情况。具体顺序如下:
(STM32 A串口2)接收(STM32 B数据printf2),同时STM32 A使用串口1printf给电脑
一.遇到的<em>问题</em>: 1. 首先是想使用第二个<em>串口</em>,查了一下中文手册,但是好像并没有关于第二个<em>串口</em>配置的,于是就自己写了一个 2. 在写<em>串口</em>2的时候遇到的<em>问题</em>是如何使用printf()函数,才能不与第一个<em>串口</em>向冲突,找了一下百度,通过一个函数就可以搞定了,下文配上 3. 当深入研究<em>串口</em>的时候发现很多<em>问题</em>,一个是数据接收保存<em>问题</em>,虽然是利用<em>串口</em>中断,但是数据在中断中无法读取(添加了定时器定时读
sw4stm32串口重定向以及打印浮点型数字
系统:linux mint 18.3 xfce 64bit 开发环境: STM32CubeMX4.24 sw4<em>stm32</em> v2.4 STM32CubeFW V1.6 sw4<em>stm32</em><em>串口</em>重定向 可以参考STM32CubeF1下面给出的例子,例子位于STM32Cube_FW_F1_V1.6.0/Projects/STM32F103RB-Nucleo/Examples/UART/UAR
STM32串口打印printf
主要是说明了STM32在使用printf函数打印时,需要加入的函数。
STM32多串口共用printf打印串口数据
(1)<em>问题</em>描述: 多<em>串口</em>共用printf函数,百度到的资料大部分是建议重新写一个xx_printf(format, …)。但是使用起来还是不方便,就此<em>问题</em>而言加上一个判断语句便可解决。 (2)解决方法: printf函数最后调用的是int fputc(int ch, FILE *f),那么重新改写此函数便可。 (3)代码://标志量定义 int USART_PRINTF_FL
Stm32串口发送字符串数据
ps:把字符串分成字节循环发送 #include "<em>stm32</em>f10x.h" #include "<em>stm32</em>f10x_rcc.h" #include "<em>stm32</em>f10x_gpio.h" #include "<em>stm32</em>f10x_usart.h" #include "<em>stm32</em>f10x_crc.h" #include "system_<em>stm32</em>f10x.h" #include "s
STM32串口发送十六进制的数组
通过<em>串口</em>发送十六进制的数组的方法有很多种,这里我介绍一种最简单也最使用的一种方法。 我这里使用的板子是STM32F103RCT6,使用<em>串口</em>2,usart2.c的代码如下: #include &quot;delay.h&quot; #include &quot;usart2.h&quot; #include &quot;stdarg.h&quot; #include &quot;stdio.h&quot; #include &quot;string.h&quot; #in...
STM32F105串口USART3无法发送数据或数据错误问题
关于STM32系列例程网上有很多,但是大部分都是zhiji
STM32F103利用定时器2与串口接收指令控制LED亮度
通过<em>串口</em>接收到的数据改变PA8<em>输出</em>的占空比来控制LED小灯的亮度主函数char *str_light = &quot;LIGHT:&quot;; unsigned char PWM_BUF = 0; int main(void) { PWM_Init(); USART3_TIM2_Init(115200); delay_init(); while(1) { if(RX_SATA == 1) ...
单片机中使用printf打印浮点数问题
对于单片机,处理能力有限,我使用<em>stm32</em>直接使用printf函数(当然printf使用<em>串口</em>方式),直接使用printf(“xxxx=%f”,xxxx),打印出来的数据时一大长串乱七八糟的数据, 在实时性较强的应用中,一般自己编写处理程序,现在的<em>问题</em>是:怎么样更方便快速地将浮点数<em>输出</em>到显示器件上。 按照网上网友的方式,将小数提炼出来是个好办法: void PrintFloat(float v
IAR +STM32实现printf()输出串口
搜索互联网上,关于此类<em>问题</em>的解决文章资料也比较丰富,不过按照其思路还是遇到了不少<em>问题</em>。 首先,贴代码,大部分代码都是类似的方案,重写putchar或者fputc函数。 #ifdef USE_IAR #define PUTCHAR_PROTOTYPE int putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch,F
STM32 超声波测距串口打印源码带CRC校验
STM32 超声波测距<em>串口</em>打印源码带CRC校验
STM32关于串口发送缓冲的问题
<em>串口</em>每发送一个字节需要等待多长时间,以防止缓冲区数据被后面要发送的数据覆盖 条件: 主控芯片:STM32F103C8T6     主频72MHz <em>串口</em>波特率 115200  实践结果是需要<em>串口</em>发送单字节之后需要至少延时10us 程序截图:
hello world ,stm32串口打印程序
<em>stm32</em> <em>串口</em> 打印程序。C语言编写。 打印机。
STM32 USART3可以接收无法发送问题(Tx一直为高电平)
首先这个<em>问题</em>耗费了我比较多的时间来进行调试,比较郁闷;
STM32 HAL 串口中断接收模式出错的原因
用STM32 HAL库,<em>串口</em>使用中断模式,发现程序有时候会进去死锁状态,原因应该是<em>串口</em>在发送过程中,这时候数据又被发送过去了,然后就很容易会死锁了。上网找了相关的资料,见链接:https://blog.csdn.net/mickey35/article/details/74255041作者分析了原因,是__HAL_LOCK的原因,这里点个赞。作者又写了另外一种情况下<em>串口</em>死锁的解决方法,具体可见:h...
STM32F429串口通信GPIO配置问题
STM32<em>串口</em>通信为什么429的把Rx和Tx都配置成复用推挽<em>输出</em>上拉,但STM32F1的却把RX配置成复用输入浮空  Tx配置成复用推挽。 我的意思是  为什么不一样!呵呵。
stm32串口发送16进制字符和16进制数的区别和具体实现方法
在调试一个<em>stm32</em><em>串口</em>通信时,下位机设置好的发送方式采用<em>串口</em>助手接收后已经可以正常离线解包。但是由于需要实时解包并存储,因此写了一个实时解包存储的上位机,通信正常后接收的数据一直有误。经过单步调试,发现单片机发送的数据帧是字符串,并不是16进制数,而在线解包程序直接是对16进制数进行处理的,这就导致的比如16进制的数0xAA(170),下位机发送的是“AA"(字符串),上位机处理的16进制数是41 41(10进制为65*100+65)...
STM32串口通信(基于缓冲区)编程及遇到的问题总结
在写<em>串口</em>通信前阅读了STM32中文参考手册,然后满心澎湃地写代码。在这个过程中遇一些让人郁闷的事情,目前这些<em>问题</em>目前已经解决了,特此来总结一番。
stm32 一上电串口发送0x00
现象:<em>stm32</em> 一上电<em>串口</em>发送0x00。 原因:参考https://blog.csdn.net/unsv29/article/details/40855397 (1)STATUS寄存器的上电初始值有<em>问题</em>造成的,Usart的发送数据寄存器有一个缓冲移位寄存器。并且发送有两个状态,一个是发送数据寄存器为空,一个是移位寄存器发送完成。上电后Usart的状态寄存器的发送完成位为0,造成了上电以后会始...
STM32中重定位printf到串口输出
#include "stdio.h" #ifdef __GNUC__/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf     set to 'Yes') calls __io_putchar() */#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)#else#define PUTCHAR_PROTOTYPE int fputc(int ch, FI
STM32串口通信乱码详细处理方法
STM32<em>串口</em>通信以及温度采集搞定,其中主要遇到STM32系列单片机时钟树的<em>问题</em>,<em>串口</em>通信遇到<em>串口</em>调试助手能够接收到数据但出现乱码现象,开始一直以为是<em>串口</em>配置和程序代码<em>问题</em>,因为是第一次上电在线调试STM32板子,后面主要查<em>串口</em>波特率配置和收发函数程序段,如下图: 波特率设置成115200没<em>问题</em>,试着降低波特率改成9600和4800但<em>问题</em>依旧没有解决,紧接着如下处理: 将重定向函数注释
STM32 矩阵键盘通过串口输出
 STM32F103C8T6 4*4矩阵键盘 通过<em>串口</em><em>输出</em>,可以用来写密码锁程序的思路如下:1、首先需要配置的是矩阵键盘:配置两个函数:  KEY44_Init(矩阵键盘初始化)和key44_Scan(扫描并获取值)   。2、其次,设置<em>串口</em>(本文设置为STM32F103C8T6的<em>串口</em>三): 我们需要对USART进行初始化设置,详细请见下文。3、然后就开始写我们的主函数:主函数比较简单。因为程序已...
STM32 printf函数打印到串口(刘凯)
来自刘凯第21讲学习STM32过程中,经常打交道的莫过于<em>串口</em>,你可以将任何信息,当然重要的是调试信息打印到<em>串口</em>中<em>输出</em>,总是用一个字节发送函数或者字符串发送函数总是有些不放便,之前编程中熟悉的莫过于printf了,下面就给出了用printf打印到<em>串口</em>的方案,当然方案不止一个,仅供参考。1、 添加printf的头文件 #include int fputc(int ch, FILE *f) { USA
刚刚用MDK仿真STM32串口时发现了一个技巧
刚刚入手<em>stm32</em>,刚刚用MDK仿真的时发现了一个技巧,不知道大家都有没有这样用过,直接说重点: 用MDK的仿真和虚拟<em>串口</em>以及<em>串口</em>调试工具仿真<em>stm32</em>的<em>串口</em>程序。 (1)利用VSPD将PC上的两个虚拟<em>串口</em>连接起来。如图: (2)在利用MDK仿真时在命令输入行中分别输入:mode com4 9600,0,8,1及assign com4s1out 在MDK的帮助文档里有对这些命令的说
STM32F103串口配置,并且使用printf进行打印
首先要配置<em>串口</em>时钟:     // USART1 clock enable      RCC_APB2PeriphClockCmd(     RCC_APB2Periph_USART1 |     RCC_APB2Periph_GPIOA |     RCC_APB2Periph_AFIO, ENABLE); 然后再配置端口,在配置<em>串口</em>,再使能即可。   void USART1_Ini...
【STM32】keil MDK下重定向printf到串口(基于STM32CubeMX)
在keil MDK环境下重定向printf与keil C51不同,由于本人使用了STM32CubeMX生成工程模板,HAL_USART_Transmit函数即是模板里<em>串口</em><em>输出</em>的函数。由于printf最终是调用fputc<em>输出</em>数据,fputc是一个弱引用(weak)函数,覆写即可重定向printf。
STM32中ADC的使用/printf函数重定向串口显示内部温度传感器测量值
STM32F334C8T6这款MCU中有两个12位ADC(模数转换器),ADC1的通道16连接到内置的一个温度传感器,本文使用该温度传感器测量MCU和周围的环境温度,并且通过<em>串口</em>发送到PC的<em>串口</em>助手进行显示。 1. ADC的使用 2. 内部温度传感器的使用 3. printf()函数重定向
stm32串口奇偶校验时出现bug总结
做的是工业传感采集器,现场采集的参数查询指令为FE FE 68 19 01 00 00 00 00 33 78 01 03 1F 90 01 E1 16 ,8位数据位,奇校验模式 <em>串口</em>设置:             USART_InitStructure.USART_WordLength = USART_WordLength_8b;             USART_InitStructur...
stm32 printf打印出错,信息不完整解决办法
原因:keil编译器5.0的漏洞。 解决办法:按照如下图步骤操作即可解决该<em>问题</em>。
STM32L1学习笔记05 串口校验位与数据位的一个坑
ST的HAL库<em>串口</em>结构体 UART_InitTypeDef 的 WordLength 不单单是指数据位! 如果你有用到了奇偶校验的话,一定要在数据位数再加1。
stm32f103串口1串口2收发程序
#include "<em>stm32</em>f10x.h"   #include "string.h" #include "stdio.h"   void delay(void);   void GPIO_Configuration(void);  void uart_init(); extern void USART_OUT(USART_TypeDef* USARTx, uint16_t *Dat
使用stm32cubemx开发四:串口标准化输出
使用STM32CubeMX配置<em>串口</em>参数,用查询和中断两种方式实现<em>输出</em>重定向
STM32模拟串口输出偶有乱码
因为芯片<em>串口</em>不够用,只好用IO口模拟<em>串口</em>,在网上下载了个模拟<em>串口</em>的程序,可运行,但发现<em>串口</em><em>输出</em>隔几个字符就会出现乱码,主要部分代码如下: #define OI_TXD PAout(12) #define OI_RXD PAin(11) #define BuadRate_9600 100 u8 len = 0; //接收计数 u8 USART_buf[11]; //接收缓冲区 u8 re
回炉重造STM32 CUBEMX之串口通讯问题
<em>串口</em>通讯+PWM波的生成和控制,遇到的坑太多。先MARK下
STM32之串口的使用
<em>串口</em>的使用 1、为什么要用<em>串口</em>?      自上一篇写的时间是1月20号,今6月7号了,半年没更新了。 这半年发生了什么?过完年就去找公司实习,在那里自我感觉进步很大。其实在公司大多都是自学,师傅基本不会给你说什么。但这并不能说明你的师傅对你不好,带我的那个师傅只比我高一届,但他的水平比我高的好多届。他也是自学,也没人告诉他该怎么做,因为老板也不太懂。所以自学能力很重要,当然有人
怎样将整型变量转换为字符变量 然后串口 或者LCD发送出来(STM32) 以及sprintf的用法
样将整型变量转换为字符变量 然后<em>串口</em> 或者LCD发送出来(STM32) 以及sprintf的用法 http://blog.sina.com.cn/s/blog_60e5783601017vb8.html u8 b;         unsigned char c[3]; b=123; c[0]= (unsigned char)((b/100)); c
STM32的UART串口2Printf简单打印(STM32神舟IV号-库函数版)程序,亲测能用
程序内有详细的讲解文档,很好的学习资料,欢迎大家下载学习
STM32串口第一字节消失或者误码的原因和解决方案
现象:<em>stm32</em>复位之后<em>串口</em>打印的第一个字节误码或者消失。 误码多是由于端口初始化有<em>问题</em>。使用ST官方v3.5的标准库时,对<em>串口</em><em>输出</em>端口进行了重复初始化。 第一字节消失是因为‘TXE’和‘TC’ 标志位复位值都是‘1’。
STM32——关于printf重定向到串口问题
简单地说:想在mdk 中用printf,需要同时重定义fputc函数和避免使用semihosting(半主机模式), 标准库函数的默认<em>输出</em>设备是显示器,要实现在<em>串口</em>或LCD<em>输出</em>,必须重定义标准库函数里调用的与<em>输出</em>设备相关的函数. 例如:printf<em>输出</em>到<em>串口</em>,需要将fputc里面的<em>输出</em>指向<em>串口</em>(重定向),方法如下: #ifdef __GNUC__ /* With GCC/RAISONANCE, s...
STM32CubeMX学习教程之八:DAC输出电压,ADC读取电压并输出串口
完整源码下载: https://github.com/simonliu009/STM32CubeMX-DAC-and-ADC 这一篇教程目标是由DAC<em>输出</em>一个阶梯电压,把它连接到一个ADC,由ADC读取这个电压并<em>输出</em>到<em>串口</em>。 软件: STM32CubeMX V4.25.0   System Workbench V2.4 固件库版本: STM32Cube FW_F1 V1.6.1 硬件...
错误解决:STM32F103串口1与串口3相同代码却结果不同
    在前几天调试openmv时发现同样的代码<em>串口</em>1和<em>串口</em>3的结果却是不一样的,当时着实是把我坑了很久,怎么都找不到原因,用示波器看波形也是没有<em>问题</em>的,在Openedv网站上有位网友指出是我初始化代码的<em>问题</em>,在翻阅参考手册后终于发现了<em>问题</em>。     下列代码为我原本的初始化代码: #include &quot;sys.h&quot; #include &quot;usart.h&quot; #include &quot;led.h&quot; #i...
STM32之 UART4 和UART5所遇到的问题
最近在写一个人机界面,由于硬件同事布板的<em>问题</em>,必须要用到<em>串口</em>4,先开始我还觉得没什么,就是把USART1改成4以及改下开启时钟和配置引脚。        但是事实证明我的想法是多么愚蠢,调了整整2天,UART4发送很好,但是就是在接收时死活的卡在中断之前,就会进入HardFaultException B       HardFaultException。真是百思不得其解,我就一步步调试跟踪,也没
STM32中使用printf打印串口数据
STM32使用printf打印<em>串口</em> 该方法适用于STM32的<em>串口</em>重映射方式,实现了使用printf等标准C流函数<em>输出</em>数据的办法,极大的减少了<em>输出</em><em>串口</em>数据时所需要做的数据处理。
STM32学习笔记-ADC采集-串口2发送至上位机
首先感谢河北科技大学航模协会-能给我这样的学习机会-感谢那些带我们教我们的学长学姐们.<em>串口</em>2的配置(一根杜邦线不行纠结了半天)void USART2_Initialise( u32 bound ) { GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; USART_InitTyp...
SP3232串口上电瞬间发乱码问题
现象:          有时上电时会出现设备<em>串口</em>无返回数据(不是经常),一直要等重启设备后才能恢复正常 分析原因:          是因为上电瞬间<em>串口</em>会有一段乱码发出,产品和设备虽然有通讯协议但有时也会造成设备<em>串口</em>死掉,要重启设备 3232输入端TX端波形 3232<em>输出</em>端TX端波形 上电瞬间<em>串口</em>助手收到的数据   分析波形发现是323
stm串口通信常见问题及解决含第一个字符不能够成功发送
笔者由于项目的需求,做起了stm与PC的<em>串口</em>通信工作。由于是新手,一路上磕磕绊绊,踩了不少坑,这儿做下记录(ennn~,几天不写博客,感觉自己懒了),大家可以参考~一):分频系数要写正确          下面是初始化函数:void Init_UART1(void) { UART1_CR1=0x00; UART1_CR3=0x00; UART1_BRR2=0x00...
STM32F091串口USART2通信实例及PA2、PA3不能使用问题 - STM32F091 Demo
       硬件开发的小经验,在进行软件开发之前,一定要先将硬件检查清楚,保证硬件完好,尽可能保证在进行开发时硬件因素。这个篇博客,是我帮别人写一个STM32F091的标准库例程时遇到的<em>问题</em>(官方的例程总感觉存在各种<em>问题</em>,而且不简洁),写在这里,当是一个小总结。 开发环境 开发平台:官方开发板STM32F091RC-Nucleo开发软件:Keil uVision5标准库:STM32F0xx_...
利用STM32F4串口重定向Printf()
IO引脚复用功能初始化  我们需要将PA9和PA10当做USART1的Tx和Rx引脚来用,也就是说此节课的PA9和PA10已不是通用IO的作用了,而是芯片内部的外设的接口引脚。STM32将这种应用叫做“I0引脚复用”,这也就说PA9将被配置成“复用推挽<em>输出</em>模式”,PA10将被配置成“复用上拉输入模式”。 IO引脚的复用功能 我们知道,STM32F4 有很多的片内外设,这些外设的外部引脚都是由...
STM32下多个串口的Printf用法
转子http://hi.baidu.com/bbhuangrui/item/dcc3d8308bcc79c51a969624 STM32下多个<em>串口</em>的Printf用法 网上讲的添加printf()到程序中一般都是这样的(简要提一下): 1.配置GPIO ,USART,RCC 的Configuration 2.勾选usb micro lib 3.在程序中添加:(头文件需要添加#i
STM32 使用printf打印串口信息
STM32 使用printf打印<em>串口</em>信息,注意要点
stm32同时使用多个串口
https://blog.csdn.net/qq_28877125/article/details/80358744
STM32串口通信中遇到有规律的乱码
STM32<em>串口</em>通信       这几天学习调试<em>串口</em>通信,一连好几天<em>串口</em>收发的都是乱码。之前的乱码毫无规律,发现是<em>串口</em>硬件没有配置好,此处的配置有三处。 (1)程序中,向量中断控制器的初始化配置 (2)电脑硬件<em>串口</em>设置 (3)<em>串口</em>调试助手   这个配置好了之后,<em>串口</em>调试助手显示的收发还是和预期的不一样,不够程序收发数据变得有规律了。如图: 发送a收到q,发送b显示r(图
换晶振导致stm32串口数据飞码的解决办法
一般来说,<em>stm32</em>f107都是用标配的晶振,比如8MHz. 但是,如果用别的晶振,比如13.56M的晶振,那<em>串口</em>接收还正常吗? 根据试验结果,很可能会飞码。比如说用<em>串口</em>助手发送的是0x35,但是在<em>串口</em>接收中断里面就会得到别的值,即上位机发送的数据和板子接收的数据不一致。 通过查资料,解决办法如下: 修改文件<em>stm32</em>f10x.h, 把 #define HSE_VALUE    ((ui
通过STM32F407的串口输出运行状态信息
调试的时候,通过IDE查看状态是最常用的手段,但如果不断地把运行过程信息通过<em>串口</em><em>输出</em>来,也会是一种好办法。所以创建新项目后,可以先将调试信息<em>输出</em>功能写好,再慢慢做写其他代码,正所谓工欲善其事必先利其器嘛。 功能的实现非常简单,就是通过<em>串口</em>的TX把信息print出来,使用DMA传输可以降低MCU负担,为了简化,甚至把初始化也放在print函数中,在需要<em>输出</em>的地方直接调用DrvDebugInfoPri...
stm32j_link与串口下载几个问题
1.zet6转c8t6几个改变的地方:   (1)Device类型修改;   (2)C/C++下的Define中的STM32F10X_HD修改为STM32F10X_MD;   (3)Flash Download下要将芯片类型修改为Med_density 128k这种;   (4)工程启动文件startup里面换成startup_<em>stm32</em>f10x_md.s。 2.自动下载电路与j_lin
stm32串口1+2同时中断输入
<em>stm32</em>f103系列单片机,<em>串口</em>1+2同时中断输入,<em>串口</em>1配置:PA9,PA10。<em>串口</em>2:PA2,PA3引脚。 都可以中断输入,<em>输出</em>。
STM32 USART出现乱码
USART使用<em>串口</em>助手调试时出现乱码的情况,一般都是波特率的<em>问题</em>,例如:向<em>串口</em>发送“hello world\r\n”,但是<em>串口</em>助手收到的数据却是这样: 于是我仔细检查代码中设置的波特率的大小,发现没错,也是设置为115200,但是<em>串口</em>助手上显示的还是乱码。我再仔细检查与USART相关的代码,包括UASRT初始化、中断、以及发送数据的类型。。。,很绝望,还是没有找出这个BUG! 以下是我的UASR
STM32使用OV2640,发送一帧RGB565数据到串口
使用STM32F407,OV2640摄像头,RGB565模式,在LCD上面显示实时图像的同时,可以通过按键将目前一帧RGB565图像数据发送到<em>串口</em> 接收数据情况如下 详细代码过程请下载 https://download.csdn.net/download/a1174792073/10727971 ...
基于STM32F4的FreeRTOS_笔记2_打印输出字符串
曾快速浏览过一遍《FreeRTOS实时内核使用指南》,但过后不久一些简单的概念却又忘了,遂决定把其中的示例程序都自己写一遍,以加深记忆。关于printf()在此用printf()函数代替示例中的vPrintString()函数,以实现通过<em>串口</em>将相应的字符串打印至<em>串口</em>助手上。对此,ST的库函数中有相应的例程,需要将以下代码添加到程序中:#ifdef __GNUC__ /* With GCC/RAI
STM32调试大法 之 串口通讯
开发过程经常需要查看某些特定参数。通常的方法可以使用paintf进行打印<em>输出</em>,观察具体的变量值。STM32内部集成有USART的<em>串口</em>功能,可以通过<em>串口</em>直接<em>输出</em>到电脑(上位机)。使用非常方便,基本不需要不需要写代码,只要配置一下就可以使用。   简单设置就可以看到上面的效果   配置方法:   1、重定向printf的<em>输出</em>函数 int fputc(int ch,
STM32F103程序设计-9-USB转TTL串口(收发)
USB转TTL<em>串口</em>(收发) 在上一个例程USB转TTL<em>串口</em>(printf)的基础上进行修改。主要修改了以下几点内容: 1.由于不要使用printf了,所以把PUTCHAR_PROTOTYPE的定义部分去掉。 2.从官网例程中找到<em>串口</em>收发数据的代码,并融合到新定义的<em>串口</em>收、发数据的函数中。 例程中<em>串口</em>发数据的代码(已进行细微改动): /* Send one byte f
STM32串口第一个字节丢失解决办法
void USART_SendByte(USART_TypeDef* USARTx, uint8_t Data) { while(USART_GetFlagStatus(USARTx, USART_FLAG_TC)==RESET); USART_SendData(USARTx,Data); } while(USART_GetFlagStatus(USARTx, USART_F
一种STM32的串口控制台的实现(非常实用)
曾经玩Linux时非常喜欢这种基于出<em>串口</em>的控制台, 通过简单的<em>串口</em>TX和RX能实现嵌入式硬件的人机交互,非常实用, 那么STM32能否实现通过超级终端与用户互动的构想呢? 答案是肯定的,因此我编写这个简单的控制台, 经过多项目实践证明这个控制台能加快程序开发效率.特此共享给大家.
STM32USART串口调节与printf重定义
首先,printf重定义后可以直接使用printf函数从<em>串口</em>发送数据在usart.c中添加代码:#ifdef __GNUC__  /* With GCC/RAISONANCE, small printf (option LD Linker-&amp;gt;Libraries-&amp;gt;Small printf     set to 'Yes') calls __io_putchar() */  #defin...
STM32矩阵键盘输入通过串口输出
配置矩阵键盘输入//PA0~PA3为推挽式<em>输出</em> //PA4~PA7为上拉输入 //PA9-&amp;gt;RXD PA10-&amp;gt;TXD void KEY44_Init(void) { //PA0~PA3为推挽式<em>输出</em> GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE)...
STM32串口获取氨气传感器数据
传感器:ZE03电化学模组NH3NH_3 (0-100ppm)同上篇关于STM32<em>串口</em>接收激光粉尘传感器的博文差不多,因为该传感器提供了<em>串口</em><em>输出</em>数据,其他配置可以和粉尘传感器一样不变,主要修改<em>串口</em>中断函数即可void USART2_IRQHandler(void) //<em>串口</em>2中断服务程序(氨气浓度测量) { u8 Res; static
STM32串口通信DMA例程
基于STM32的<em>串口</em>通信DMA例程,采用<em>串口</em>中断,实现了DMA收发等功能,基于Cube实现,采用NUCLEO-F401RE开发板。
文章热词 双目视觉问题 特征点问题 相机标定问题 最优化问题 统计学稳健估计问题
相关热词 c c++ stm32 宏定义 c#接收串口数据线程问题 stm32 库c++版本 stm32 用c++编写 区块链问题 python串口教程
我们是很有底线的