OpenEdv-开源电子网

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

STM32RBT6串口三PC10和PC11配置问题

[复制链接]

1

主题

10

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-4-22
在线时间
0 小时
发表于 2013-4-22 21:29:21 | 显示全部楼层 |阅读模式

void USART1_IRQHandler(void)
{
 u8 res;    
 if(USART1->SR&(1<<5))//接收到数据
 { 
  res=USART1->DR;
  USART1->DR=res;                 
 }             
}
u8 USART3_RX_BUF[64];     //接收缓冲,最大64个字节.
u8 USART3_RX_STA=0;       //接收状态标记  
 
void USART3_IRQHandler(void)
{
 u8 res;    
 if(USART3->SR&(1<<5))//接收到数据
 { 
  res=USART3->DR;
  USART3->DR=res;                 
 }             
}
void uart_init(u32 pclk2,u32 bound)
{   
 float temp;
 u16 mantissa;
 u16 fraction;   
 temp=(float)(pclk2*1000000)/(bound*16);//得到USARTDIV
 mantissa=temp;     //得到整数部分
 fraction=(temp-mantissa)*16; //得到小数部分 
    mantissa<<=4;
 mantissa+=fraction;
 
 RCC->APB2ENR|=1<<2;   //使能PORTA口时钟 
 RCC->APB2ENR|=1<<14;  //使能串口1时钟
 GPIOA->CRH&=0XFFFFF00F;
 GPIOA->CRH|=0X000008B0;//IO状态设置

 
 RCC->APB2ENR|=1<<4;   //使能PORTC口时钟 
 RCC->APB1ENR|=1<<18;  //使能串口3时钟
 
 GPIOC->CRH&=0XFFFF00FF;
 GPIOC->CRH|=0X00008B00;//IO状态设置

 AFIO->MAPR|=0x00000010;//usart3重映像
   
 RCC->APB2RSTR|=1<<14;   //复位串口1
 RCC->APB2RSTR&=~(1<<14);//停止复位
 
 RCC->APB1RSTR|=1<<18;   //复位串口3
 RCC->APB1RSTR&=~(1<<18);//停止复位
        
 //波特率设置
  USART1->BRR=mantissa; // 波特率设置 
 USART1->CR1|=0X200C;  //1位停止,无校验位.
 
 USART3->BRR=mantissa; // 波特率设置 
 USART3->CR1|=0X200C;  //1位停止,无校验位.

 USART3->CR1|=1<<8;    //PE中断使能
 USART3->CR1|=1<<5;    //接收缓冲区非空中断使能      
 MY_NVIC_Init(2,2,USART3_IRQChannel,2);//组2,最低优先级 
 //使能接收中断
 USART1->CR1|=1<<8;    //PE中断使能
 USART1->CR1|=1<<5;    //接收缓冲区非空中断使能      
 MY_NVIC_Init(3,3,USART1_IRQChannel,2);//组2,最低优先级
}


 

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

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-4-22 21:31:55 | 显示全部楼层
串口1和串口3同时开,然而,1能用3不能用,郁闷,串口三用的是PC10和PC11,已经写了AFIO->MAPR|=0x00000010;//usart3重映像
,但是,串口3就是没反应,求高手解决
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-4-22 21:33:11 | 显示全部楼层
我用的是stm32rbt6
回复 支持 反对

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
11975
金钱
11975
注册时间
2013-3-8
在线时间
1276 小时
发表于 2013-4-22 21:58:22 | 显示全部楼层
回复【3楼】hpuwangyankai:
---------------------------------
串口1,2,3是可以同时开的,我现在做的项目就用到三个串口,三个串口的配置方法完全一样。你的串口1可以,那口串口3肯定也没问题,两者初始化只改下IO就行了,别忘了时钟,与中断优先级。
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-4-22 22:44:42 | 显示全部楼层
我试了用PB10和PB11做串口3的TX和RX能传,但是是乱码,改回PC10和PC11就不行连乱码都没有
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-4-22 22:51:11 | 显示全部楼层
我用PC10和PC11的时候用了:AFIO->MAPR|=0x00000010;//usart3重映像
重映像串口三的TX和RX到PC10和PC11了但是就是不行
回复 支持 反对

使用道具 举报

头像被屏蔽

243

主题

429

帖子

0

精华

禁止发言

积分
1067
金钱
1067
注册时间
2011-12-23
在线时间
17 小时
发表于 2013-4-22 23:02:40 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-4-23 12:42:45 | 显示全部楼层
谢谢各位的帮助,问题已解决,拿出来给各位分享经验:

stm32F103RBT6 的 USART3 使用PC10和PC11做TX和RX注意事项:

1.APB1时钟最高36MHZ,在配置波特率是需要注意,但是端口时钟可以用50MHZ(已经验证)
2.对寄存器AFIO->MAPR操作之前需要开启AFIO时钟:RCC->APB2ENR|=1<<0;   //使能AFIO时钟 
3.使用串口3端口使用PC10和PC11做TX和RX要用到:AFIO->MAPR|=0x00000010;//usart3重映射
这里USART3映射到PC10和PC11是部分映射,没有映射时时端口是PB10和PB11,完全映射时是PD8和PD9 (但是64引脚没有引出PD8和PD9) 

希望对其他用stm32F103RBT6的USART3且端口用PC10和PC11的有用
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-4-23 12:47:52 | 显示全部楼层
追问:
NVIC_PreemptionPriority:抢占优先级
//NVIC_SubPriority       :响应优先级
//NVIC_Channel           :中断编号
//NVIC_Group             :中断分组 0~4
//注意优先级不能超过设定的组的范围!否则会有意想不到的错误
//组划分:
//组0:0位抢占优先级,4位响应优先级
//组1:1位抢占优先级,3位响应优先级
//组2:2位抢占优先级,2位响应优先级
//组3:3位抢占优先级,1位响应优先级
//组4:4位抢占优先级,0位响应优先级


这是什么意思怎么用
多串口同时使用抢占优先级可以相同吗?
响应优先级不能相同是吧?
2位抢占优先级是什么意思?
0位响应优先级 ?是什么意思?

还请高手赐教!







回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-4-23 13:09:57 | 显示全部楼层
回复【9楼】hpuwangyankai:
---------------------------------
看stm32不完全手册/stm32开发指南,对于system文件夹的介绍,里面有终端部分代码的详细介绍!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-4-23 18:27:55 | 显示全部楼层
好的,谢谢站长!
回复 支持 反对

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-4-14
在线时间
1 小时
发表于 2013-4-23 20:11:23 | 显示全部楼层
库函数写的话,就可以直接复制了,总感觉寄存器写,寄存器太多,记不住,
配置步骤也太多了,
找错误也比较麻烦。
现在改用库函数来学习了。
我可以一辈子都呆在家里不出来么?
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-4-23 20:38:42 | 显示全部楼层
库函数怎么用?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-5-11
在线时间
0 小时
发表于 2014-5-11 14:23:04 | 显示全部楼层
回复【8楼】hpuwangyankai:
---------------------------------
灰常感谢 
如果部分重映像
对寄存器AFIO->MAPR操作之前需要开启AFIO时钟:RCC->APB2ENR|=1<<0;   //使能AFIO时钟
这个是关键 其他的和串口1.2 一样
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-5-5
在线时间
3 小时
发表于 2015-12-4 11:16:47 | 显示全部楼层
回复【13楼】hpuwangyankai:
---------------------------------
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOC, ENABLE); //使能复用功能时钟和 GPIOC 时钟
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE); //使能USART3时钟

    GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE); //部分重映射到PC10和PC11
回复 支持 反对

使用道具 举报

0

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2015-11-16
在线时间
22 小时
发表于 2018-6-24 10:33:29 | 显示全部楼层
hpf9017 发表于 2015-12-4 11:16
**** 作者被禁止或删除 内容自动屏蔽 ****

太棒了 正在为这个问题烦恼 .结果原子论坛 就很轻松解决了
回复 支持 反对

使用道具 举报

3

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2019-4-27
在线时间
12 小时
发表于 2021-7-27 13:26:34 | 显示全部楼层
正点原子 发表于 2013-4-23 13:09
回复【9楼】hpuwangyankai:
---------------------------------
看stm32不完全手册/stm32开发指南,对于syst ...

原子哥,我想问一下,SDIO的引脚使用了串口4和串口5的引脚,SDIO必须使用那几个引脚吗?我能不能换成别的引脚?因为我想使用串口4和5
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 16:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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