0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

stm32串口接收数据程序

汽车玩家 来源:dgzj 作者:dgzj 2021-07-22 17:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

stm32串口接收数据程序


void init_usart(void)

//RCC初始化

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,,ENABLE);//使能GPIOA时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);

//nvic

NVIC_ InitTypeDef NVIC_InitStructure;#ifdef VECT_TAB_RAM

NVIC_SetVectorTable(NVIC_VectTab_RAM,Ox0);#else

NVIC_SetVectorTable(NVIC_VectTab_FLASH,Ox0);#endif

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;NVIC_InitStructure.NVIC_IRQChannelSubPriority = o;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_lnitStructure);

//GPIO初始化

GPIO_IlnitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_IlnitStructure.GPIO_Speed = GPIO_Speed_5OMHz;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;

GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_5OMHz;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;

GPIO_Init(GPIOA,&GPIO_InitStructure);

//USART初始

//USART_DeInit(USART2);

USART_InitTypeDef USART_InitStructure;

//串口设置恢复默认参数

USART_ClockInitTypeDef USART_ClocklnitStructure;

USART_InitStructure.USART_BaudRate = 9600;

//波特率9600

USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长8位USART_InitStructure.USART_StopBits = USART_StopBits_1;

//1位停止字节

USART_InitStructure.USART_Parity = USART_Parity_No;

川/无奇偶校验

USART_IlnitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无流控制

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//打开Rx接收和Tx发送功能

USART_ClockInitStructure.USART_Clock =USART_Clock_Disable;USART_ClockInitStructure.USART_CPOL =USART_CPOL_High;USART_ClockInitStructure.USART_CPHA =USART_CPHA_2Edge;USART_ClocklnitStructure.USART_LastBit =USART_LastBit_Disable;USART_Clocklnit(USART2,&USART_ClockInitStructure);

USART_Init(USART2,&USART_InitStructure);

//初始化

USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);//开启接收中断,这个必须在打开串口之前设置USART_Cmd(USART2,ENABLE);

/启动串口

void USART2_IRQHandler(void)

//接收中断

if(USART_GetlTStatus(USART2,USART_IT_RXNE)==SET)(

USART_ClearlTPendingBit(USART2,USART_IT_RXNE);usart_rx=USART_ReceiveData(USART2);

usart_rx_flag=1;

}

//溢出-如果发生溢出需要先读SR,再读DR寄存器则可清除不断入中断的问题[牛人说要这样]if(USART_GetFlagStatus(USART2,USART_FLAG_ORE)==SET)

USART_ClearFlag(USART2,USART_FLAG_ORE);//读SR其实就是清除标志USART_ReceiveData(USART2);//读DR

}

}


文章整合自:dgzj

编辑:ymf

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2313

    文章

    11210

    浏览量

    375270
  • 串口接收
    +关注

    关注

    0

    文章

    8

    浏览量

    9542
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ESP32驱动YX5300/6300串口MP3音乐播放模块

    本文介绍了YX5300串口MP3音乐播放模块的基本特点,以及用ESP32开发板驱动YX5300模块播放音乐。
    的头像 发表于 05-23 09:41 33次阅读
    ESP32驱动YX5300/6300<b class='flag-5'>串口</b>MP3音乐播放模块

    STM32驱动串口屏,STM32F103C8T6串口发送指令控制HMI串口

    仅是一部分常用的基础指令,更多更仔细的指令或者函数可以访问陶晶驰资料官网。 硬件和接线 硬件需要一块STM32F103C8T6的开发板,杜邦线诺干,2.4寸串口屏一块 接线 串口STM32
    的头像 发表于 02-10 17:07 741次阅读
    <b class='flag-5'>STM32</b>驱动<b class='flag-5'>串口</b>屏,<b class='flag-5'>STM32</b>F103C8T6<b class='flag-5'>串口</b>发送指令控制HMI<b class='flag-5'>串口</b>屏

    串口调试步骤(适合免驱动的232串口设备)

    密码切换到root超级管理下 apt update 更新插件 apt-get install cutecom 安装系统自带的串口调试工具 cutecom 输入串口测试的指令会弹出一个图形界面如下图 32串口协议测试需要将第2和第
    的头像 发表于 12-17 17:23 1727次阅读
    <b class='flag-5'>串口</b>调试步骤(适合免驱动的232<b class='flag-5'>串口</b>设备)

    普通IO模拟串口的功能

    接收数据,将IO设置为下降沿中断,当有下降沿出现时,说明串口数据进来了,然后再去读取串口
    发表于 12-09 06:10

    NucleiStudio_IDE_201909串口打印浮点型数据时无数据输出,软件该如何配置串口才能打印浮点型数据

    NucleiStudio_IDE_201909串口打印浮点型数据时无数据输出,软件该如何配置串口才能打印浮点型数据
    发表于 11-07 07:57

    GD32VF103串口读取PM2.5传感器

    (); // 参考上一篇 【分享】 GD32VF103串口收发实验(中断方式) ,将其中的中断处理部分去除int plantower(){uint8_t buffer[32];// 初始化接收缓存int
    发表于 11-05 08:34

    UWB650串口测距通信定位模块规格书

    UWB650串口测距通信定位模块规格书
    发表于 11-03 17:40 3次下载

    串口接收的bufferSize由1024变更为3072后数据接收出错,为什么?

    所有功能正常的程序,为了在加快OTA下载的速度,将原来的串口接收数组的长度1024变为3072时反而接收不到数据了,后来查看了一下内存具体如
    发表于 09-17 06:25

    关于stm32f4zgt6和mspm0g3507串口通信问题

    本人在使用stm32f4zgt6和mspm0g3507串口通信时出现问题,情况如下: m0芯片使用软件超时解析进行数据接收,使用标准库的transmit函数进行
    发表于 09-01 11:11

    CYT2B7串口接收会漏接数据怎么解决?

    串口中断方式接收会漏接数据串口工具发送 :1234567芯片接收到 :1357硬件是CYTVII-B-E-1M-SK开发板软件是SDL v
    发表于 08-14 07:29

    DTU的S485/232串口能够复用吗?

    想问一下,DTU的S485/232串口能够复用吗?就是窗口下面接很多传感器设备那种,主要是传感器数量过大,一个传感器接一台DTU太过于浪费。
    发表于 08-06 06:58

    STM32串口发送数据,USART_FLAG_TC无法置位怎么解决?

    STM32串口发送数据,在经过一段时间的数据发送,大概200ms发送一下,一次发送大概二三十个字节的数据,有可能会发生USART_FLAG_
    发表于 07-29 11:44

    串口转网网关有哪些功能应用

    直接接入信息网络的痛点,同时支持多协议解析、边缘计算与安全防护等高级功能。 在工业自动化生产线上,大量设备如 PLC(可编程逻辑控制器)、传感器、仪表等仍采用串口通信,而上位机则是通过以太网进行通信。串口转网
    的头像 发表于 07-17 17:10 1008次阅读
    <b class='flag-5'>串口</b>转网<b class='flag-5'>口</b>网关有哪些功能应用

    STM32驱动ADS1256串口输出-AD转换

    文章介绍了如何使用STM32通过SPI接口初始化并驱动ADS1256高精度AD转换器,包括ADS1256的芯片特点、引脚说明、模块配置、程序初始化以及实验中的接线和现象。在实验中,通过读取各个通道的AD值并转换为电压,展示了芯片功能的正确实现。
    的头像 发表于 07-01 14:59 2642次阅读
    <b class='flag-5'>STM32</b>驱动ADS1256<b class='flag-5'>串口</b>输出-AD转换

    使用USB转TTL串口板和ST-LINK调试下载器给STM32单片机下载程序

    本文详细介绍如何使用ST-LINK/V2和USB转TTL串口板为STM32单片机下载程序,包括STM32启动模式、JTAG与SWD接口对比、驱动安装及官方软件
    的头像 发表于 06-20 17:26 3399次阅读
    使用USB转TTL<b class='flag-5'>串口</b>板和ST-LINK调试下载器给<b class='flag-5'>STM32</b>单片机下载<b class='flag-5'>程序</b>