STM32F407: USART 遇到的问题】的更多相关文章

今天初次使用STM32F407进行USART串口通讯实验,按照f103的代码写完了,发现没法发送数据, 查看文档后发现是由于没有将端口映射到USART1,然后添加如下代码: 1 GPIO_PinAFConfig(GPIOB,GPIO_PinSource6,GPIO_AF_USART1); // PB6 - TX GPIO_PinAFConfig(GPIOB,GPIO_PinSource7,GPIO_AF_USART1); // PB7 - RX 然后可以通讯了,但是数据是错误的,检查代码无误,G…
版权声明:转载请注明出处,谢谢 https://blog.csdn.net/Kevin_8_Lee/article/details/88865556 或  https://www.cnblogs.com/kevin-nancy/p/10621205.html 这两个平台都是我的个人博客 基于STM32的MFRC522射频卡模块使用 本学期感测技术选修课需要做一个作品出来,用到了MFRC522射频卡模块,经历一个星期的调试,终于可以正常使用并寻卡成功了了.  成功的把C51的程序移植到了STM32…
前言 第26节也是串口,笔记链接在此:https://www.cnblogs.com/YuQiao0303/p/10019362.html github地址:https://github.com/YuQiao0303/STM32F407-Examples 基本把27节的新内容都写在代码注释里了,只有一点: 在串口调试助手中,选"发送新行",则这一条数据会以0x0d,0x0a 结尾(ascii码) 代码 usart.c #include "sys.h" #includ…
前言 这篇笔记对应正点原子STM32F407探索者 ,教学视频第26节,网址如下: https://ke.qq.com/webcourse/index.html#cid=279403&term_id=100330877&taid=1965424279569259&vid=u14245plf1d 这段代码在提供的源码里是没有的,后来有没有在公众号更新我就没注意了.最初版本的源码里确实没有这一篇. GPIO引脚复用配置 详见 https://www.cnblogs.com/YuQiao…
本文由正点原子STM32F407探索者开发板的led和beep实验,总结了gpio编程的套路. 下文中以hardware 来称呼可能的硬件外设,如led或beep等. 新建项目后主要用到三个文件:hardware.c ,hardware.h, main.c hardware.h #ifndef __HARDWARE_H #define __HARDWARE_H #include "sys.h" void HARDWARE_Init(void); #endif hardware.c #i…
STM32F103xE的USART异步数据传输示例 USART全称Universal Synchronous/Asynchronous Receiver/Transmitter,是一种可以进行同步/异步通信的串行设备接口. 通过查阅STM32官方手册得之,STM32f10x系列一共有五个USART传输串口.其中USART1.USART2.USART3为同步/异步串行通信接口,USART4.USART5为异步串行通信接口. STM32外设的初始化步骤基本上是: 使能外设时钟 配置外设所需要的I/O…
作者:观海  QQ:531622 直接说重点:我用的是 STM32F103 芯片 USART2_IRQHandler 总是中断,程序死循环. 1.出现问题: 原程序的中断处理程序是: void USART2_IRQHandler(void){  u8 key = 0;  USART_ClearFlag(USART2,USART_FLAG_TC ); //清除中断标志  if(USART_GetITStatus(USART2,USART_IT_RXNE)!=Bit_RESET)//检查指定的usa…
一.前言 这次实验我们来学习基于zigbee的串口通信实验,揭开zigbee神秘的面纱,让大家可以用zigbee协议编制属于自己的程序,这次实验只是串口发送数据,并没有进行无线的数据传输,为的是使大家熟悉zigbee协议栈工作的流程,复杂的实验以后会进行,循序渐进嘛. 二.代码讲解 大家还记得裸机实验里怎么使用串口功能的吗?我们裸机使用串口功能的步骤是: (1) 串口初始化:    (2) 执行任务(发送/接收). 其实,跟裸机实验里的串口实验一样,本实验也是按照同样的步骤来进行的,第(1)步不…
STM32F407第一步之点亮LED. 要点亮LED,首先了解一下F4的GPIO模块.首先看一下STM32F4数据手册,GPIO模块的内部结构图 看上去有点复杂,不要怕,慢慢理解就可以了.对外引脚那里二极管就是保护的作用.通过上.下拉对应的开关配置,控制引脚默认状态的电压,开启上拉的时候引脚电压为高电平,开启下拉的时候引脚电压为低电平,这样可以消除引脚不定状态的影响.但是这个不应该用来作为外部的上拉或下拉用,如按键的拉电阻不能用这个内部来作用,如果用可能会引起按键不稳定. GPIO 具有了“推挽…
这两天折腾CTS/RTS硬件流控,看到说232协议的CTS/RTS只是用来做半双工换向使用的.正好手头上有块stm32的板子,看了看stm32的Usart,竟然发现支持的是单线半双工.232里面毕竟4根线,支持半双工也是各自独立地物理信道(大胆猜测,回头回顾一下以前草草使用的双线485,看看它的半双工).第一次注意到.之所以引起我的兴趣,是因为,我好奇stm32的单线半双工有2点. 第一:有啥用.结果上网一搜,还真有人用它来控制AX-12数字舵机. 第二:怎么实现的.我印象中stm32的io口是…
前言 一般进行远程监控时,2.4G无线通信是充当远程数据传输的一种方法.这时就需要在现场部分具备无线数据发送装置,而在上位机部分由于一般只有串口,所以将采集到的数据送到电脑里又要在上位机端设计一个数据接收的适配器.这里基于stm32分别设计了现场部分和适配器部分,这里只是基本通信功能实现的讲解,一些复杂的技术比如加密.可靠等要根据具体的应用来设计~ 总体说明 这里采用stm32作为MCU,采用nRF24L01作为2.4G通信模块.其中适配器中仅仅采用了USART和NRF24L01两个主要部分,负…
新上手项目需要使用STM32F407,在使用STM32F1系列时就喜欢自己用库函数设置系统时钟,所以F4也打算这么做,但是遇到了一些问题. 其中百度文库有篇文章关于RCC的文章将的不错,地址:http://wenku.baidu.com/link?url=6mbgKXNIhl4XGqnvp0GzCweLVfldIjzDUMo90lfcKx1YwC7d-3JX_S20ntl3uJPKQYa5JHHf-WtA6MthmWx6jzd8Ks674SX7CdC0tGRCPx3 我使用的也是其中的函数,但是…
转载自:http://www.cnblogs.com/microxiami/p/3752715.html 一.USART简介 通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换.USART利用分数波特率发生器提供宽范围的波特率选择. STM32 的串口资源相当丰富的,功能也相当强劲.STM32F103ZET6 最多可提供 5 路串口,有分数波特率发生器,支持同步单向通信和半双工单线通信,支持LIN(局部互连网),智能卡协议和I…
转载自:http://www.cnblogs.com/UQYT/articles/2949794.html 这是一个综合的例子,演示了ADC模块.DMA模块和USART模块的基本使用. 我们在这里设置ADC为连续转换模式,常规转换序列中有两路转换通道,分别是ADC_CH10(PC0)和ADC_CH16(片内温度传感器).因为 使用了自动多通道转换,数据的取出工作最适合使用DMA方式取出,so,我们在内存里开辟了一个u16 AD_Value[2]数组,并设置了相应的DMA模块,使ADC在每个通道转…
转载自:http://www.cnblogs.com/TrueElement/archive/2012/09/14/2684298.html 几个问题: 1.状态寄存器(USART_SR)中的TC(Transmission complete)何时置位?它和TXE(Transmit data register empty,发送数据寄存器空)有何区别?可以先看看下面的图: 根据上面的图,TC置位的条件就是在上一个字节发完之后,数据寄存器仍为空(TXE=1).USART_DR中的数据,只要移位寄存器把…
转载自:http://www.cnblogs.com/chineseboy/archive/2013/03/06/2947173.html 前题: 前段时间,在公司调试了一个项目,很简单,但对于初学的我来说,有点难.经过一周多两周的时间,刻骨铭心,深深的印入我的脑海,特此整理---那就是关于串口的那些事儿.串口那一堆的事儿,总是和rs485,usart,uart,rs232,rs422搞在一起,最后是你中有我,我中有你.如果说,会配置usart,但是不会配合rs485,在现实中基本会被笑话--而…
学习是一个简单的过程,只要有善于发掘的眼睛,总能学到新知识,然而如何坚持不懈的学习却很困难,对我亦如此,生活中有太多的诱惑,最后只想说一句勿忘初心.闲话不多扯,本篇讲诉的是异步串行口的输入输出,串口在外设中属于比较简单的通讯模式,但是在大型项目调试中又十分重要,理解该外设模块对于以后的通讯协议学习以及软件调试都有重要意义. 通讯协议是指双方实体完成通信或服务所必须遵循的规则和约定,对于串口来说,包含波特率,数据位长度,停止位和数据校验位,当stm32芯片和客户端具有相同的协议约定时即能够正确的接…
>_<!功能:PC端发送一个特定的字符:0x0d 0x0a,单片机则返回一句话,如图: >_<!知识: 1.复用功能I/O和调试配置(AFIO)  为了优化外设数目,可以把一些复用功能重新映射到其他引脚上.设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)(参见0节)实现引脚的重新映射.这时,复用功能不再映射到它们的原始分配上. 2.嵌套向量中断控制器(NVIC) l 43 个可屏蔽中断通道(不包含16 个Cortex-M3 的中断线):  l 16 个可编程的优先等级: …
DMAC也可以和外设进行数据交互.之前我们曾使用PDC进行USART的数据回显,这次就使用DMAC完成相同的工作.而且由于DMAC有内部的缓冲区,实现起来更为简单. 一. USART设置 因为之前已经做过相关的实验,这里不再重复.需要注意的是,要注意JP11的跳线,以选择正确的协议(RS232).另外,如果使用硬件握手协议的话,注意设置PC端串口通信软件的线路控制信号. 另外,由于不再使用手动的缓冲区和PDC,所以不需要进行相关的设置.同时,也不用再使用USART的接收超时功能. 二. DMAC…
字面意义:UART:universal asynchronous receiver and transmitter通用异步收发器:USART:universal synchronous asynchronous receiver and transmitter通用同步异步收发器.一般而言,单片机中,名称为UART的接口一般只能用于异步串行通讯,而名称为USART的接口既可以用于同步串行通讯,也能用于异步串行通讯. 1. 异步通信 异步通信是我们最常采用的通信方式,我们后面的例子都是采用的异步通信…
前言 关于DMA(Direct Memory Access)的功能,前面关注我微信的人应该知道,其实我已经在F1芯片上简单讲了一下.有网友要求在F0讲解一下使用DMA收发串口数据.今天就应网友要求总结一下在F0芯片上,使用DMA方式传输(收发)USART数据的功能. 在多种芯片上(F0.F1.F2.F3.F4)了解过DMA模块功能的朋友可能会发现一个特点,就是DMA的功能有很多相似的地方,甚至是一样.其实,每一个模块在不同系列芯片(甚至不同厂商)基本上是大同小异,这就是所谓的触类旁通.对于软件开…
首先来说一下UART和USART的区别: 1.字面意义: UART:universal asynchronous receiver and transmitter通用异步收发器: USART:universal synchronous asynchronous receiver and transmitter通用同步异步收发器.一般而言,单片机中 ,名称为UART的接口一般只能用于异步串行通讯,而名称为USART的接口既可以用于同步串行通讯,也能用于异步串行 通讯. 2.区别: UART需要固定…
就像前面提到的,我用的板子是一款stm32f107系列的板子,在这块板子上,已经开发出了一套比较成熟的库函数,这也就意味着你可以不用直接去操作存储器来实现某些功能.比方说对于USART来说可以直接通过void STM_EVAL_COMInit(COM_TypeDef COM, USART_InitTypeDef* USART_InitStruct)实现对usart始终初始化,复用端口的定义和设置,usart功能的配置及使能.那么后面的寄存器是怎么操作的呢?这是我比较关心的问题,为了能更详细的了解…
上午想要用Timer10做相对精确的延时功能,但是用示波器发现实际延时数值总是只有一半,百思不得其解.仔细查阅各处资料结合实际研究后对stm32f407的14个定时器的时钟做一个总结: 下面来源: http://www.openedv.com/thread-68387-1-2.html 从时钟树中我们可以得知(时钟树的图片可以直接参考6楼,感谢6楼xkwy补上的图):(1)高级定时器timer1, timer8以及通用定时器timer9, timer10, timer11的时钟来源是APB2总线…
UART与USART都是单片机上的串口通信,他们之间的差别例如以下: 首先从名字上看: UART:universal asynchronous receiver and transmitter通用异步收/发器 USART:universal synchronous asynchronous receiver and transmitter通用同步/异步收/发器 从名字上能够看出,USART在UART基础上添加了同步功能,即USART是UART的增强型,事实也确实是这样.可是详细增强到了什么地方呢…
最近在做智能家居,物联网项目,用到了C下的contiki移植 经过一阵调试,终于在 STM32F407移植contiki2.6后使用LWIP库实现tcp client. 一路艰辛谁人知道....唯有留下代码以资青春 #include "main.h" #include "contiki.h" #include "sys\autostart.h" void led_init(); #define SYSTEMTICK_PERIOD_MS 10 #d…
===========突袭网收集的解决方案如下=========== 解决方案1: STM32F103有的功能407都有,并且这些功能的引脚完全兼容,只是程序不同而已...而STM32F407有的功能103不一定有,因为407强大些......希望对你有用 解决方案2: 不能.407支持摄像头,I2S等引脚,103都没有 解决方案3: 普通IO都一样,407有更多的附加功能.值得注意的是,407的电源引脚与103的有很大的区别,一定要注意! =====可能对您有帮助====…
1 前言 STM32有强大的固件库,绝大部分函数都可以有库里面的函数组合编写.固件库可以到ST官网(www.st.com)上下载,也可以搜索“STM32 固件库 v3.5”下载到固件库.本文章就是基于固件库来编写有关串口的输入输出函数.由于博主的知识水平有限,目前仅仅是将程序的思路和实现给出,具体到函数的执行效率.代码的简化方面未进行深入探讨.如果有兴趣的同学可以联系我,我们可以一起探讨一下. 2 STM32固件库 有关固件库的详细介绍,在emouse 思·睿 技术博客里有较为详细的解释(详见h…
一.USART简介 通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换.USART利用分数波特率发生器提供宽范围的波特率选择. STM32 的串口资源相当丰富的,功能也相当强劲.STM32F103ZET6 最多可提供 5 路串口,有分数波特率发生器,支持同步单向通信和半双工单线通信,支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作.它还允许多处理器通信.…
这次讲讲利用串口收发中断来进行串口通讯.STM32 上为每个串口分配了一个中断.也就是说无论是发送完成还是收到数据或是数据溢出都产生同一个中断.程序需在中断处理函数中读取状态寄存器(USART_SR)来判断当前的是什么中断.下面的中断映像图给出了这些中断源是如何汇合成最终的中断信号的.图中也给出了如何控制每一个单独的中断源是否起作用. 另外,Cortex-M3 内核中还有个NVIC,可以控制这里的中断信号是否触发中断处理函数的执行,还有这些外部中断的级别.关于NVIC 可以参考<ARM Cort…