OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11487|回复: 6

USART2不能接收数据

[复制链接]

7

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2014-1-6
在线时间
2 小时
发表于 2014-6-25 21:24:11 | 显示全部楼层 |阅读模式
5金钱
原子哥,我遇到一个很棘手的问题,我现在使用STM32F103VCT6,串口1通信正常,串口2只能发送数据,不能接收数据,只要接收到数据,芯片就复位了。串口2就进入不了接收中断。还有一个问题就是串口2能使用115200波特率吧?
[mw_shl_code=c,true]void USART2_Init(u32 U2_pclk1,u32 U2_bound) { float U2_temp; u16 U2_mantissa; u16 U2_fraction; U2_temp=(float)(U2_pclk1*1000000)/(U2_bound*16);//得到USARTDIV U2_mantissa=U2_temp; //得到整数部分 U2_fraction=(U2_temp-U2_mantissa)*16; //得到小数部分 U2_mantissa<<=4; U2_mantissa+=U2_fraction; RCC->APB2ENR|=1<<2; //使能PORTA口时钟 RCC->APB1ENR|=1<<17; //使能串口2时钟 GPIOA->CRL&=0XFFFF00FF; //IO状态设置 GPIOA->CRL|=0X00008B00; //IO状态设置 //GPIOA->CRL=0X44448B44; //IO状态设置 RCC->APB1RSTR|=1<<17; //复位串口2 RCC->APB1RSTR&=~(1<<17);//停止复位 //波特率设置 USART2->BRR=U2_mantissa; // 波特率设置 USART2->CR1|=0X200C; //1位停止,无校验位. USART2->CR1|=1<<8; //PE中断使能 校验错误进入中断 USART2->CR1|=1<<5; //接收缓冲区非空中断使能 MY_NVIC_Init(1,1,USART2_IRQChannel,2);//组2,最低优先级 } [/mw_shl_code] [mw_shl_code=c,true]void USART2_IRQHandler(void) {     u8 i;////换存变量 if(USART2->SR&(1<<5))//接收到数据 {       USART2->SR&=~(1<<5);      i=USART2->DR;        LED1=~LED1; } }  [/mw_shl_code]

低调,,,
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-6-25 22:46:07 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2014-1-6
在线时间
2 小时
 楼主| 发表于 2014-6-26 08:08:07 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
有中断服务函数的,就是进不去,只要芯片一接收数据,芯片就复位,我给贴上中断函数。
低调,,,
回复

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-6-26 08:29:38 | 显示全部楼层
我用库函数初始化的,接收发送都没问题,是不是哪个寄存器没有设置还是。。。
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

7

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2014-1-6
在线时间
2 小时
 楼主| 发表于 2014-6-26 08:46:05 | 显示全部楼层
回复【4楼】Badu_Space:
---------------------------------
我的程序在STM32F103ZET6能用,在STM32F103VCT6上不能用,程序就在上面粘着,
低调,,,
回复

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-6-26 10:29:47 | 显示全部楼层
回复【5楼】yaoqi_STM32:
---------------------------------
IO口对应初始化才行喔,没看过STM32F103VCT6这个芯片的管脚排布
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

7

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2014-1-6
在线时间
2 小时
 楼主| 发表于 2014-6-27 11:46:06 | 显示全部楼层
  串口2不能接收数据已经搞定,硬件原因,串口2的接收引脚和旁边的引脚连接了一点,谢谢原子哥和大家的帮助!!!
低调,,,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 16:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表