OpenEdv-开源电子网

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

仿照usart1例程写的usart2不能实现 求帮助

[复制链接]

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2016-6-16
在线时间
20 小时
发表于 2016-8-30 19:56:18 | 显示全部楼层 |阅读模式
10金钱
改端口后  但是插在usart1上还有数据输出     插在usart2就一点反应没有      原来的usart1程序收发很正常改成usart1就不行了                  用的mini板

usart - 副本 (2).zip

2.38 MB, 下载次数: 122

最佳答案

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

Mini板的扩展实验里面,蓝牙例程,就用到了串口2. 不知道为何你没有找到?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

17

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2014-3-20
在线时间
5 小时
发表于 2016-8-31 20:32:08 来自手机 | 显示全部楼层
的份上 发表于 2016-8-31 14:40
程序改出来了       加了DMA后能成功发送接收了       难道串口2必须得加DMA么

        RCC_APB2PeriphClockCmd(RCC_APB1Periph_USART2|RCC_APB2Periph_GPIOA, ENABLE);        //使能USART2,GPIOA时钟
   你这个写错了,USART2的时钟是在APB1上,和DMA没关系

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);        //使能GPIOA时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);        //使能USART2时钟
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-8-30 19:56:19 | 显示全部楼层
Mini板的扩展实验里面,蓝牙例程,就用到了串口2.
不知道为何你没有找到?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2016-6-16
在线时间
20 小时
 楼主| 发表于 2016-8-30 20:18:58 | 显示全部楼层
帮帮忙好混乱
回复

使用道具 举报

3

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-6-22
在线时间
56 小时
发表于 2016-8-31 11:19:38 | 显示全部楼层

看一下你的硬件有没有弄错
回复

使用道具 举报

84

主题

766

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2775
金钱
2775
注册时间
2015-6-1
在线时间
394 小时
发表于 2016-8-31 11:30:57 | 显示全部楼层
我记得以前试过,也是没成功,不想改了,就在网上抄了别人配好的串口2。当时看串口1和串口2的代码还是差一些的。
自在随心
回复

使用道具 举报

0

主题

17

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2014-3-20
在线时间
5 小时
发表于 2016-8-31 12:12:40 来自手机 | 显示全部楼层
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);//使能usart2外设        
回复

使用道具 举报

0

主题

17

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2014-3-20
在线时间
5 小时
发表于 2016-8-31 12:16:19 来自手机 | 显示全部楼层
mnjhuy86 发表于 2016-8-31 12:12
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);//使能usart2外设

要用APB1
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2016-6-16
在线时间
20 小时
 楼主| 发表于 2016-8-31 14:40:08 | 显示全部楼层
程序改出来了       加了DMA后能成功发送接收了       难道串口2必须得加DMA么
回复

使用道具 举报

4

主题

290

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1130
金钱
1130
注册时间
2015-8-4
在线时间
107 小时
发表于 2016-8-31 16:36:38 | 显示全部楼层
咋可能,仔细检查一下你的代码。
活到老,学到老。
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2016-6-16
在线时间
20 小时
 楼主| 发表于 2016-9-1 10:30:24 | 显示全部楼层
void uart_init(u32 bound)
{
  //GPIO端口设置
  GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
         
        RCC_APB2PeriphClockCmd(RCC_APB1Periph_USART2|RCC_APB2Periph_GPIOA, ENABLE);        //使能USART2,GPIOA时钟
在串口初始化当中我确实是RCC_APB1Periph_USART2就是APB1啊
这是我改完的程序加了   DMA的    我按照mini板的蓝牙例程改的     开始我也以为DMA对串口通信没影响但是删了之后影响了串口2的printf        会不会是之前我改的printf不正确啊    那么DMA是否是必须的呢     麻烦了

usart2.zip

2.88 MB, 下载次数: 126

回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2016-6-16
在线时间
20 小时
 楼主| 发表于 2016-9-1 10:31:22 | 显示全部楼层
mnjhuy86 发表于 2016-8-31 20:32
RCC_APB2PeriphClockCmd(RCC_APB1Periph_USART2|RCC_APB2Periph_GPIOA, ENABLE);        //使能USART2,GPIOA时 ...

void uart_init(u32 bound)
{
  //GPIO端口设置
  GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
         
        RCC_APB2PeriphClockCmd(RCC_APB1Periph_USART2|RCC_APB2Periph_GPIOA, ENABLE);        //使能USART2,GPIOA时钟
在串口初始化当中我确实是RCC_APB1Periph_USART2就是APB1啊
这是我改完的程序加了   DMA的    我按照mini板的蓝牙例程改的     开始我也以为DMA对串口通信没影响但是删了之后影响了串口2的printf        会不会是之前我改的printf不正确啊    那么DMA是否是必须的呢     麻烦了
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-8-25
在线时间
2 小时
发表于 2016-9-16 23:28:47 | 显示全部楼层
的份上 发表于 2016-9-1 10:31
void uart_init(u32 bound)
{
  //GPIO端口设置

解决了没有啊,我现在也是这个问题
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2016-6-16
在线时间
20 小时
 楼主| 发表于 2016-9-20 16:51:12 | 显示全部楼层
冯文书 发表于 2016-9-16 23:28
解决了没有啊,我现在也是这个问题

解决了    就是使能外设的时候错了
回复

使用道具 举报

10

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2016-9-4
在线时间
15 小时
发表于 2016-9-20 17:12:18 | 显示全部楼层
我遇到了同样的问题,,,果然是时钟设置改的有问题。。。
回复

使用道具 举报

1

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2015-11-4
在线时间
72 小时
发表于 2016-9-20 17:35:14 | 显示全部楼层
DMA不是必须的,记得说有查询法和中断法
回复

使用道具 举报

1

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2015-11-4
在线时间
72 小时
发表于 2016-9-20 18:02:05 | 显示全部楼层
串口使用是一样的,只需修改一下这2部分,还有GPIO端口设置就可以了

这是串口对应的定时器

这是串口对应的定时器

这是串口对应的DMA通道

这是串口对应的DMA通道
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 05:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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