OpenEdv-开源电子网

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

USART3不能发送数据,也不能进入中断服务函数

[复制链接]

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-7-18
在线时间
0 小时
发表于 2014-9-7 14:53:00 | 显示全部楼层 |阅读模式
5金钱
对着书看了一整天都没发现问题....求高手点拨
开发板是MiniSTM32 V3.0,下面是代码

[mw_shl_code=c,true]//初始化串口3,波特率9600,无奇偶校验 void Usart3_Init() { GPIO_InitTypeDef GPI; USART_InitTypeDef USI; NVIC_InitTypeDef NVI; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB1Periph_USART3,ENABLE); //配置IO口 GPI.GPIO_Mode=GPIO_Mode_AF_PP; GPI.GPIO_Speed=GPIO_Speed_50MHz; GPI.GPIO_Pin=GPIO_Pin_10; //TX GPIO_Init(GPIOB,&GPI); GPI.GPIO_Pin=GPIO_Pin_11; //RX GPI.GPIO_Mode=GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOB,&GPI); //配置串口 // USART_DeInit(USART3); USI.USART_BaudRate=(u32)9600; USI.USART_Mode=USART_Mode_Rx|USART_Mode_Tx; USI.USART_WordLength=USART_WordLength_8b; USI.USART_StopBits=USART_StopBits_1; USI.USART_Parity=USART_Parity_No; USI.USART_HardwareFlowControl=USART_HardwareFlowControl_None; USART_Init(USART3,&USI); //配置接收中断 NVI.NVIC_IRQChannel=USART3_IRQn; NVI.NVIC_IRQChannelPreemptionPriority=3; NVI.NVIC_IRQChannelSubPriority=3; NVI.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVI); USART_ITConfig(USART3,USART_IT_RXNE,ENABLE); //启用串口3 USART_Cmd(USART3,ENABLE); // #ifdef DEBUG // printf("InitOver"); //测试 // #endif }[/mw_shl_code]

[mw_shl_code=c,true]//发送一个字符 void SendChar(u8 ch) { u16 temp=(u16)ch; USART_SendData(USART3,temp); // printf("Sending"); //测试 while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET); } 测试发现USART_GetFlagStatus(USART3,USART_FLAG_TC)返回值一直是0,而且TX(B10脚)上也没有电压变化[/mw_shl_code]

[mw_shl_code=c,true]//接收中断服务函数 void USART3_IRQHandler(void) { u8 temp,i; #ifdef DEBUG printf("InIRQ"); //测试 #endif if(USART_GetITStatus(USART3,USART_IT_RXNE)) { #ifdef DEBUG printf("InRXIRQ"); //测试 #endif temp=USART_ReceiveData(USART3); if(temp==0xff) { for(i=0;i<rpos;i++) { printf("%d ",RecvBuf); delay_ms(3); //保证发送完成 } rpos=0; } else { RecvBuf[rpos]=temp; rpos++; if(rpos>MAXLENGTH-1) rpos=0; } USART_ClearITPendingBit(USART3,USART_IT_RXNE); #ifdef DEBUG printf("RXIRQOver"); //测试 #endif } } 串口调试助手上没看见任何东西[/mw_shl_code]

Usart3.h

161 Bytes, 下载次数: 532

Usart3.c

1.75 KB, 下载次数: 432

最佳答案

查看完整内容[请看2#楼]

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB1Periph_USART3,ENABLE); 这句错了。USART3是挂在APB1上的,你用了 RCC_APB2PeriphClockCmd就等于没有打开usart3的时钟,肯定就不能发送数据或进入中断了~ 换RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

342

帖子

0

精华

高级会员

Rank: 4

积分
544
金钱
544
注册时间
2014-4-24
在线时间
20 小时
发表于 2014-9-7 14:53:01 | 显示全部楼层
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB1Periph_USART3,ENABLE);
这句错了。USART3是挂在APB1上的,你用了 RCC_APB2PeriphClockCmd就等于没有打开usart3的时钟,肯定就不能发送数据或进入中断了~
换RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2012-9-21
在线时间
2 小时
发表于 2014-9-7 15:00:13 | 显示全部楼层
请看下,你主函数中有没有初始化串口。。
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-7-18
在线时间
0 小时
 楼主| 发表于 2014-9-7 15:02:18 | 显示全部楼层
回复【2楼】shanyuze:
---------------------------------
delay_init(); //初始化延时函数
NVIC_Configuration(); //设置中断分组
uart_init(9600); //串口初始化,波特率为9600
usmart_dev.init(72); //USMART调试工具初始化
Key_Init();
Usart3_Init();

有的,这是主函数开头的一部分,在串口调试助手里也能看见Usart3_Init()中printf出来的内容(排查这点之后我才把printf注释掉的)
回复

使用道具 举报

47

主题

360

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2014-3-6
在线时间
19 小时
发表于 2014-9-7 15:36:31 | 显示全部楼层
回复【4楼】STM32VBT6:
---------------------------------
我也有类似的疑问,我把时钟换过来后,还是不行,这是为什么?  我就是,把原子的串口实验的串口1改成串口3,时钟使能也改了,下面那些有usart1的都改成usart3了,串口那边还是没反应
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-7-18
在线时间
0 小时
 楼主| 发表于 2014-9-7 15:52:32 | 显示全部楼层
回复【4楼】STM32VBT6:
---------------------------------
非常感谢^_^
唉刚学不久老是漏这个漏那个的_(:з」∠)_
回复

使用道具 举报

47

主题

360

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2014-3-6
在线时间
19 小时
发表于 2014-9-7 16:04:17 | 显示全部楼层
回复【6楼】mrl998:
---------------------------------
楼主你问题解决了吗?能不能发一下程序参考一下,我跟你的几乎一样的,但是串口没反应。。。我也是像你那样改原子的程序,就是不成功
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-7-18
在线时间
0 小时
 楼主| 发表于 2014-9-7 16:10:07 | 显示全部楼层
回复【7楼】ljjdglg520:
---------------------------------
可以,我该怎么发给你呢~
回复

使用道具 举报

47

主题

360

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2014-3-6
在线时间
19 小时
发表于 2014-9-7 16:14:59 | 显示全部楼层
回复【8楼】mrl998:
---------------------------------
你可以在楼主位那里编辑一下,把文件放上去
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-7-18
在线时间
0 小时
 楼主| 发表于 2014-9-7 16:20:15 | 显示全部楼层
回复【9楼】ljjdglg520:
---------------------------------
好了
回复

使用道具 举报

47

主题

360

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2014-3-6
在线时间
19 小时
发表于 2014-9-7 16:26:18 | 显示全部楼层
回复【10楼】mrl998:
---------------------------------
谢谢啦^_*
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
回复

使用道具 举报

47

主题

360

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2014-3-6
在线时间
19 小时
发表于 2014-9-7 16:33:08 | 显示全部楼层
回复【10楼】mrl998:
---------------------------------
这么假的,你串口可以出数据吗?我初始化跟你一样的,但是串口不出数据- -串口1就有数据,串口3就没数据
成长不是衣服越来越小,裤子越来越短,而是心和梦想一起越来越大!
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-4-25
在线时间
0 小时
发表于 2015-5-25 17:28:38 | 显示全部楼层
学习了,我新手也犯了同样的错误,调试了半天,看完帖子才知道。
回复

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2015-5-26
在线时间
0 小时
发表于 2015-5-26 13:11:27 | 显示全部楼层
我也是有同样的问题呀  焦虑
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2018-8-17
在线时间
8 小时
发表于 2018-10-15 13:30:38 | 显示全部楼层
方便的话发一份代码参考谢谢!!540709935@qq.com
回复

使用道具 举报

11

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
461
金钱
461
注册时间
2019-3-22
在线时间
185 小时
发表于 2020-12-23 11:54:04 | 显示全部楼层
mrl998 发表于 2014-9-7 16:10
回复【7楼】ljjdglg520:
---------------------------------
可以,我该怎么发给你呢~

我的也是USART3发送不了数据,能否也发我一份解决后的程序?谢了,422626832@qq.com
回复

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2020-9-4
在线时间
46 小时
发表于 2021-1-31 23:06:26 | 显示全部楼层
2157307054@qq.com,楼主我也是这个问题,求帮忙
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2022-6-19
在线时间
1 小时
发表于 2023-2-4 21:44:03 | 显示全部楼层
shanyuze 发表于 2014-9-7 15:00
请看下,你主函数中有没有初始化串口。。

检查了好几天,原来是我没有初始化,谢谢提醒!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 18:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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