STM32串口通信实例
串口配置的一般步骤:
①:串口时钟使能,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串口通信实例相关推荐
- Ardunio下的STM32串口通信
文章目录 任务要求 Ardunio下的STM32串口通信 软件准备 编译烧录 标准库函数与HAL库函数的stm32编程方式差异 国人版的MCU集成开发平台 stduino IDE 总结 任务要求 安装 ...
- stm32串口通信(初学者对于串口通信的理解)
stm32串口通信(初学者对于串口通信的理解) 标签: stm32串口通信单片机 2015-01-24 10:12 987人阅读 评论(0) 收藏 举报 分类: stm32 版权声明:本文为博主原创 ...
- Android串口通信实例分析【附源码】
Android 串口通信实例分析,用的时开源的android-serialport-api 这个是用android ndk实现的串口通信,我把他做了一个简化,适合于一般的程序的串口通信移植,欢迎拍砖- ...
- STM32串口通信中使用printf发送数据配置方法 开发环境 Keil
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 已有 12456 次阅读2011-6-29 23:29 | 在STM32串口通信程序中使用printf发送数据, ...
- STM32——串口通信
STM32--串口通信 宗旨:技术的学习是有限的,分享的精神是无限的. 一.异步串口通信协议 STM32 的串口非常强大,它不仅支持最基本的通用串口同步.异步通信,还具有 LIN 总线功能(局域互联网 ...
- openmv和stm32串口通信完成二维码识别
openmv和stm32串口通信完成二维码识别 文章目录 前言 一.所用的硬件: 二.openmv端 2.stm32端 总结 前言 注:我只是个大一的小白,本文只完成基本功能,希望能帮助有困惑的人(我 ...
- 安装STM32CubeMX,stm32串口通信
目录 一.串口通信和RS-232标准 1.串口通信 波特率 数据位 停止位 奇偶校验 2.RS-232标准 二.安装STM32CubeMX,搭建STM32的开发环境 1.安装jdk 2.安装STM32 ...
- stc12串口收发计算机,半双工串口通信实例36:STC12单片机和STC12单片机串口通信...
半双工串口通信实例36:STC12单片机和STC12单片机串口通信 一.串口通信实例目的: STC12单片机主站数字量输入DI01~DI08控制STC12单片机从站数字量输出DO01~DO08: ST ...
- 【串口通信】K210与STM32串口通信、K210与OpenMV串口通信
[串口通信]K210与STM32串口通信.K210与OpenMV串口通信 串口通信 前言 为何需要串口通信 K210如何进行串口通信 K210串口配置 K210串口发送相关定义 K210串口发送测试 ...
- 通过python实现安卓手机与stm32串口通信
一.材料 (1)安卓终端1台,本文使用的魅蓝手机 (2)stm32微控制器(可以串口通信的) 二.通信内容 上位机发送AA,熄灭stm32上的LED灯 上位机发送BB,点亮stm32上的LED灯 上位 ...
最新文章
- python异常机制
- SAP PP CS01使用ECR去创建BOM主数据,报错:System status: ECR is not yet approved.
- python商品评论分析_亚马逊产品情感评论分析
- 杭十四计算机教室,杭十四中学生做了个图书馆智能机器人
- c语言字符密码验证码,c语言下的学生管理系统(含密码加密和验证码).docx
- Gartner Q2服务器市场报告5大要点
- 数字图像处理总结(冈萨雷斯版)
- WinCE中的Debug Zone调试
- ssm(spring,springmvc,mybatis)
- java中类和实例化_Java中类的初始化与实例化
- gradle:Creating New Gradle Builds
- 苍井空是如何勾搭上社交电商的? - 案例 - i黑马网
- 手机常识——查看手机曾经连接过的wifi密码
- Java核心技术大会|Java应用开发专场
- 银河帝国----基地前奏
- js改变html font size,JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)...
- HTML5视频与字幕使用的介绍
- 免费好用的在线字体转换工具~~
- Host Context配置
- alipay 网站支付
热门文章
- python下载网络图片_Python下载网络图片方法汇总与实现
- steam++加速问题:出现显示443端口被 vmware-hostd(9860)占用的错误。
- 一款DYI动态桌面壁纸程序
- IEEE Fellow 2020名单揭晓!BDTC 2019重磅嘉宾周伯文、叶杰平、陈宝权上榜
- java httpserver stop_java web tomcat服务停止Stopping Coyote HTTP/1.1 on http-8089
- redis 菜鸟教程
- MT2503模块价格,MT2503基带芯片,MT2503核心板资料介绍
- 复杂系统学习(五):细胞自动机 I:1D 和 2D CAs
- mysql 拼音模糊查询_mysql中文字段转拼音首字母,以及中文拼音模糊查询
- nv驱动版本linux,完善支持NV显卡Linux驱动275.19正式版,275.19增加了对