串口配置的一般步骤:

①:串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();

串口作为外设,首先要使能时钟,使能串口引脚,譬如使能GPIOA的时钟

②:串口复位:USART_Delnit();这一步不是必须的。

③:GPIO端口模式设置:GPIO_Init();

初始化GPIO

④:串口参数初始化:USART_ lnit();

⑤:开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)

NVIC_lnit();

USART_ITConfig();

⑥:使能串口:USART_Cmd();

⑦:编写中断处理函数:USARTx_IRQHandler();

⑧:串口数据收发:

void USART_SendData();//发送数据到串口 DR

uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据

⑨:串口传输状态获取

FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx,uint16_t USART_FLAG);

void USART_ClearlTPendingBit(USART_TypeDef* USARTx,uint16_t USART_IT);

#include "beep.h"
#include "led.h"
#include "stm32f10x.h"
#include "delay.h"
void My_USART1_Init(void)
{GPIO_InitTypeDef GPIO_InitStruct;USART_InitTypeDef USART_InitStruct;NVIC_InitTypeDef NVIC_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 ,ENABLE);GPIO_Init(GPIOA,&GPIO_InitStruct);GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9 ;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;GPIO_Init(GPIOA,&GPIO_InitStruct);GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10 ;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;USART_InitStruct.USART_BaudRate=115200;USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStruct.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;USART_InitStruct.USART_Parity=USART_Parity_No;USART_InitStruct.USART_StopBits=USART_StopBits_1;USART_InitStruct.USART_WordLength=USART_WordLength_8b;USART_Init(USART1,&USART_InitStruct);USART_Cmd(USART1,ENABLE);USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);NVIC_InitStruct.NVIC_IRQChannel=USART1_IRQn;NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1;NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;NVIC_Init(&NVIC_InitStruct);
}
void USART1_IRQHandler(void)
{if(USART_GetITStatus(USART1,USART_IT_RXNE)){u8 res;res=USART_ReceiveData(USART1);USART_SendData(USART1,res);}
}
int main(void)
{NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);My_USART1_Init();while(1);
}

STM32串口通信实例相关推荐

  1. Ardunio下的STM32串口通信

    文章目录 任务要求 Ardunio下的STM32串口通信 软件准备 编译烧录 标准库函数与HAL库函数的stm32编程方式差异 国人版的MCU集成开发平台 stduino IDE 总结 任务要求 安装 ...

  2. stm32串口通信(初学者对于串口通信的理解)

    stm32串口通信(初学者对于串口通信的理解) 标签: stm32串口通信单片机 2015-01-24 10:12 987人阅读 评论(0) 收藏 举报  分类: stm32 版权声明:本文为博主原创 ...

  3. Android串口通信实例分析【附源码】

    Android 串口通信实例分析,用的时开源的android-serialport-api 这个是用android ndk实现的串口通信,我把他做了一个简化,适合于一般的程序的串口通信移植,欢迎拍砖- ...

  4. STM32串口通信中使用printf发送数据配置方法 开发环境 Keil

    STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 已有 12456 次阅读2011-6-29 23:29 | 在STM32串口通信程序中使用printf发送数据, ...

  5. STM32——串口通信

    STM32--串口通信 宗旨:技术的学习是有限的,分享的精神是无限的. 一.异步串口通信协议 STM32 的串口非常强大,它不仅支持最基本的通用串口同步.异步通信,还具有 LIN 总线功能(局域互联网 ...

  6. openmv和stm32串口通信完成二维码识别

    openmv和stm32串口通信完成二维码识别 文章目录 前言 一.所用的硬件: 二.openmv端 2.stm32端 总结 前言 注:我只是个大一的小白,本文只完成基本功能,希望能帮助有困惑的人(我 ...

  7. 安装STM32CubeMX,stm32串口通信

    目录 一.串口通信和RS-232标准 1.串口通信 波特率 数据位 停止位 奇偶校验 2.RS-232标准 二.安装STM32CubeMX,搭建STM32的开发环境 1.安装jdk 2.安装STM32 ...

  8. stc12串口收发计算机,半双工串口通信实例36:STC12单片机和STC12单片机串口通信...

    半双工串口通信实例36:STC12单片机和STC12单片机串口通信 一.串口通信实例目的: STC12单片机主站数字量输入DI01~DI08控制STC12单片机从站数字量输出DO01~DO08: ST ...

  9. 【串口通信】K210与STM32串口通信、K210与OpenMV串口通信

    [串口通信]K210与STM32串口通信.K210与OpenMV串口通信 串口通信 前言 为何需要串口通信 K210如何进行串口通信 K210串口配置 K210串口发送相关定义 K210串口发送测试 ...

  10. 通过python实现安卓手机与stm32串口通信

    一.材料 (1)安卓终端1台,本文使用的魅蓝手机 (2)stm32微控制器(可以串口通信的) 二.通信内容 上位机发送AA,熄灭stm32上的LED灯 上位机发送BB,点亮stm32上的LED灯 上位 ...

最新文章

  1. python异常机制
  2. SAP PP CS01使用ECR去创建BOM主数据,报错:System status: ECR is not yet approved.
  3. python商品评论分析_亚马逊产品情感评论分析
  4. 杭十四计算机教室,杭十四中学生做了个图书馆智能机器人
  5. c语言字符密码验证码,c语言下的学生管理系统(含密码加密和验证码).docx
  6. Gartner Q2服务器市场报告5大要点
  7. 数字图像处理总结(冈萨雷斯版)
  8. WinCE中的Debug Zone调试
  9. ssm(spring,springmvc,mybatis)
  10. java中类和实例化_Java中类的初始化与实例化
  11. gradle:Creating New Gradle Builds
  12. 苍井空是如何勾搭上社交电商的? - 案例 - i黑马网
  13. 手机常识——查看手机曾经连接过的wifi密码
  14. Java核心技术大会|Java应用开发专场
  15. 银河帝国----基地前奏
  16. js改变html font size,JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)...
  17. HTML5视频与字幕使用的介绍
  18. 免费好用的在线字体转换工具~~
  19. Host Context配置
  20. alipay 网站支付

热门文章

  1. python下载网络图片_Python下载网络图片方法汇总与实现
  2. steam++加速问题:出现显示443端口被 vmware-hostd(9860)占用的错误。
  3. 一款DYI动态桌面壁纸程序
  4. IEEE Fellow 2020名单揭晓!BDTC 2019重磅嘉宾周伯文、叶杰平、陈宝权上榜
  5. java httpserver stop_java web tomcat服务停止Stopping Coyote HTTP/1.1 on http-8089
  6. redis 菜鸟教程
  7. MT2503模块价格,MT2503基带芯片,MT2503核心板资料介绍
  8. 复杂系统学习(五):细胞自动机 I:1D 和 2D CAs
  9. mysql 拼音模糊查询_mysql中文字段转拼音首字母,以及中文拼音模糊查询
  10. nv驱动版本linux,完善支持NV显卡Linux驱动275.19正式版,275.19增加了对