7.STM32F407ZG串口通信配置流程

2019-08-16来源: eefocus关键字:STM32F407ZG  串口通信  配置流程

步骤:


1.时钟使能:GPIO时钟使能,串口时钟使能。


    RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOA, ENABLE);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

2.端口配置:GPIO引脚配置,复用模式。


    GPIO_InitTypeDef GPIO_Struct;

 

    GPIO_Struct.GPIO_Pin=GPIO_Pin_9;

    GPIO_Struct.GPIO_Mode=GPIO_Mode_AF;

    GPIO_Struct.GPIO_Speed=GPIO_Speed_50MHz;

    GPIO_Struct.GPIO_OType=GPIO_OType_PP;

    GPIO_Struct.GPIO_PuPd=GPIO_PuPd_UP;

    GPIO_Init(GPIOF,&GPIO_Struct);

    

    GPIO_Struct.GPIO_Pin=GPIO_Pin_10;

    GPIO_Struct.GPIO_Mode=GPIO_Mode_AF;

    GPIO_Struct.GPIO_Speed=GPIO_Speed_50MHz;

    GPIO_Struct.GPIO_OType=GPIO_OType_PP;

    GPIO_Struct.GPIO_PuPd=GPIO_PuPd_UP;

    GPIO_Init(GPIOF,&GPIO_Struct);

端口为复用模式。


3.串口配置:串口参数初始化,串口使能,并开启中断。


    USART_InitTypeDef Usart_Struct;

    Usart_Struct.USART_BaudRate=19200;

    Usart_Struct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;

    Usart_Struct.USART_Mode= USART_Mode_Tx;

    Usart_Struct.USART_Parity=USART_Parity_No;

    Usart_Struct.USART_StopBits=USART_StopBits_1;

    Usart_Struct.USART_WordLength=USART_WordLength_8b;

    USART_Init(USART1,&Usart_Struct);

    USART_Cmd(USART1,ENABLE);

4.中断配置:中断参数设置,中断处理函数配置(中断类型,使能,抢占优先级等)。


USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);

NVIC_InitTypeDef NVIC_Inst;

NVIC_Inst.NVIC_IRQChannel= USART1_IRQn;

NVIC_Inst.NVIC_IRQChannelCmd=ENABLE;

NVIC_Inst.NVIC_IRQChannelPreemptionPriority=1;

NVIC_Inst.NVIC_IRQChannelSubPriority=1;

NVIC_Init(&NVIC_Inst);

//NVIC Init

}

 

void USART1_IRQHandler(void){

u8 res;

if(USART_GetITStatus(USART1,USART_IT_RXNE)){

res=USART_ReceiveData(USART1);

USART_SendData(USART1,res);

}

}

5.主函数配置:需设置中断优先级分组。


int main(void){

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

Usart_Init();

while(1);

}


关键字:STM32F407ZG  串口通信  配置流程

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic471320.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:6.中断优先级分组NVIC
下一篇:8.STM32之EXIT外部中断

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

4.STM32F407ZG按键输入

1.硬件图对应的按键分别为PA0,PE4,PE3,PE2。其中KEY_UP按下时,PA0为高电平,因此应设置下拉输入。K1~K3按下时,PE4~PE2为低电平,因此应设置上拉输入。2.按键扫描:首先,按键输入这一从高电平变为低电平的动作才能任为按键按下,并不只是检测到有按键输入就是按键按下。其次,这里需要考虑按键一直处于按下状态时的情况。最后,需要对按键按下进行防抖确认。3.针对按键扫描的不同结果(如是否有按键按下,如有按键按下,是哪个按键)输出不同动作。#include <key.h>#include <delay.h>#include <stm32f4xx.h>//#define
发表于 2019-08-16
4.STM32F407ZG按键输入

STM32F412应用开发笔记之一:初识NUCLEO-F412ZG

近几年来基本都是在STM32平台上做一些设计开发工作。STM32F103、STM32F107、STM32F429等都应用过,但却从没有申请过试用。没想到这次申请居然能被选中,还是很兴奋的。闲话不说,先来欣赏一下:首先来一个带包装的正面照: 一如既往的ST的风格,白色的版面,中规中矩的布局,带ST-LINK。再来一张带外套的背面照:打开包装再来张不带外套的正面照:板上的元器件不多,除去ST-LINK部分,目测应该没有实现太多功能,不过引出来的很多引脚可以扩展应用。最后再来张不带外套的背面照:初次上电后又三个灯亮起,分别是LD4的红色通讯指示灯,应该是ST-LINK的。LD6的电源指示灯是绿色长亮。还有用户LED指示灯,上电
发表于 2019-08-06
STM32F412应用开发笔记之一:初识NUCLEO-F412ZG

STM32 串口通信简单测试

今天复习了之前的串口通信知识,为了巩固,所以想自己总结一下。串口通信配置方法大致是这样的:①:使能相应的时钟②:初始化IO口③:初始化相应的串口参数④:使能串口⑤:开启中断并初始化NVIC(如果需要到中断)⑥:编写中断处理函数⑦:串口数据收发下面我以 USART1为例,写一下代码。#include “stm32f10x.h”void CHUANKOU_Init(void){GPIO_InitTypeDef GPIO_InitStruct;USART_InitTypeDef USART_InitStruct;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd
发表于 2019-08-22

STM32串口通信——16进制数形式

。我在调试STM32与PC(采用Python3编写)串口通信过程中,二者之间需要发送各种类型的数据,uint_8、int16_t、float等等,要将所有类型的数据转换成uint_8类型发送,同时上位机要能转换回来。总之就是拆开发送,接收重组。二.下位机uint_8 型发送:直接利用USART_SendData函数,通常配合检测发送结束位使用,如下:void usart1_send_data(uint8_t num){ USART_SendData(USART1, num); while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);}接收:很简单,直接赋值即可。int16_t型发送
发表于 2019-08-19

ARM开发(5)基于STM32的UART串口通信实验

一 串口通信原理:1.1 本实验实现串口助手发送数据然后回送在串口助手呈现出来。1.2 实验思路:看懂电路图,理解uart串口通信原理。1.3 开发环境 : MDK5 库函数版本开发 JLINK仿真 二 实验步骤: 2.1 uart.h代码:#ifndef __USART_H#define __USART_H#include "stdio.h"  #include "sys.h" #define USART_REC_LEN   200     //定义最大接收字节数 200#define
发表于 2019-08-19

12-HAL库串口通信总结

); }可以添加循环语句,循环输入输出。3.中断传输配置串口,开启中断,在中断处理函数中进行输入语句的输出。通过查看源代码,可以看到HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)这个函数只是用来开启中断用的,并不能真正接收数据。开启中断后,在中断处理函数HAL_UART_IRQHandler(&huart1)中,会先调用UART_Receive_IT(huart)函数进行数据输入的接收,此为静态全局函数,代码如下:static HAL_StatusTypeDef UART_Receive_IT
发表于 2019-08-16

小广播

何立民专栏

单片机及嵌入式宝典

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

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