OpenEdv-开源电子网

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

stm32f103RCT6 串口4,串口5 不能正常使用

[复制链接]

3

主题

5

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-7-10
在线时间
28 小时
发表于 2013-7-10 20:08:47 | 显示全部楼层 |阅读模式

原子大哥,借贵地 一用,我的串口4,串口5 初始化如下
void uart4_init(u32 pclk1,u32 bound) //PC10---tx,PC11--rx

{   
 float temp;
 u16 mantissa;
 u16 fraction;   
 temp=(float)(pclk1*1000000)/(bound*16);//
 mantissa=temp;     
 fraction=(temp-mantissa)*16; //??????????·? 
  mantissa<<=4;
 mantissa+=fraction;
 
 //RCC->APB2ENR|=1<<5;    //????PORTd?±??
 RCC->APB2ENR|=1<<4;    //????PORTc?±??

 RCC->APB1ENR|=1<<19;  //????????4?±??    19??  UART4EN??UART4?±?????? (UART 4 clock enable)
 GPIOC->CRH&=0XFFFF00FF; //??????
  GPIOC->CRH|=0X00008B00; //PC11?????????ì????,PC10??????????
    
 RCC->APB1RSTR|=1<<19;   //????????5
 RCC->APB1RSTR&=~(1<<19);//????????
        
 //?¨?????è??
  UART4->BRR=mantissa; // ?¨?????è?? 
 UART4->CR1|=0X200C;  //1??????,?????é??.


 UART4->CR1|=1<<8;    //PE???????
 UART4->CR1|=1<<5;    //??????????·???????????    
 
 MY_NVIC_Init(3,3,UART4_IRQChannel,2);//????????????3 ?ì??????????3 ×é2??×?????????

}

void uart5_init(u32 pclk1,u32 bound) //PC12--tx,PD2---rx
//???? 2??3??4??5 ??pclk1 36m  ?÷??????uart_init5 (36,9600);    //9600?¨????pclk1 =36m
{   
 float temp;
 u16 mantissa;
 u16 fraction;   
 temp=(float)(pclk1*1000000)/(bound*16);//????USARTDIV
 mantissa=temp;     //??????????·?
 fraction=(temp-mantissa)*16; //??????????·? 
    mantissa<<=4;
 mantissa+=fraction;

 RCC->APB2ENR|=1<<5;    //????PORTd?±??
 RCC->APB2ENR|=1<<4;    //????PORTc?±??

 RCC->APB1ENR|=1<<20;  //????????5?±??    20??  UART5EN??UART5?±?????? (UART 5 clock enable)
 
 GPIOC->CRH&=0XFFF0FFFF; //??????//PC12--tx,PD2---rx
 GPIOD->CRL&=0XFFFFF0FF;
 
  GPIOC->CRH|=0X00080000; //PB11?????????ì????,PB10??????????
 GPIOD->CRL|=0x00000B00;  
 RCC->APB1RSTR|=1<<20;   //????????5
 RCC->APB1RSTR&=~(1<<20);//????????
        
 //?¨?????è??
  UART5->BRR=mantissa; // ?¨?????è?? 
 UART5->CR1|=0X200C;  //1??????,?????é??.


 UART5->CR1|=1<<8;    //PE????????
 UART5->CR1|=1<<5;    //??????????·???????????      
 MY_NVIC_Init(3,3,UART5_IRQChannel,1);//????????????3 ?ì??????????3 ×é2??×?????????

}

打印函数如下:

void UART4_SendByte(unsigned char data)
{
  UART4->SR;
 UART4->DR=data;
 while((UART4->SR&0X40)==0);//????·????á??

}

void UART4_SendStr(unsigned char const *str)
{
   while(1)
   {
  if( *str == '\0' ) break;
      UART4_SendByte(*str++);        //·???????
   }

}

void UART5_SendByte(unsigned char data)
{
  UART5->SR;
 UART5->DR=data;
 while((UART5->SR&0X40)==0);//????·????á??

}

void UART5_SendStr(unsigned char const *str)
{
   while(1)
   {
  if( *str == '\0' ) break;
      UART4_SendByte(*str++);        //·???????
   }

}

就是没出来 打印,串口1,2,3都有的。是不是 跟 那个映射有关的?

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165580
金钱
165580
注册时间
2010-12-1
在线时间
2118 小时
发表于 2013-7-10 20:31:49 | 显示全部楼层
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165580
金钱
165580
注册时间
2010-12-1
在线时间
2118 小时
发表于 2013-7-10 20:32:05 | 显示全部楼层
串口1~5,我都用过的.
没什么问题.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

5

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-7-10
在线时间
28 小时
 楼主| 发表于 2013-7-10 20:45:19 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
PC10,PC11 默认是 uart4的tx,rx。重定义就可以是变成 Uart3。。。。很奇怪,我没有重新定义,都是默认的。应该有串口4,5的 打印输出。
回复 支持 反对

使用道具 举报

109

主题

1606

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2222
金钱
2222
注册时间
2011-12-15
在线时间
37 小时
发表于 2013-7-10 21:54:25 | 显示全部楼层
你程序是否写法故障,导致的呢?
专业制作STM32 物联网通信模块板,模块交流群:369840039。
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2011-12-17
在线时间
0 小时
发表于 2013-7-12 15:11:30 | 显示全部楼层
回复【楼主位】guo19877:
---------------------------------
STM32最多可提供5路串口(ALIENTEK Mini STM32使用的是STM32F103RBT6,只有3个串口)
回复 支持 反对

使用道具 举报

4

主题

200

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
236
金钱
236
注册时间
2012-12-19
在线时间
0 小时
发表于 2014-4-15 22:43:24 | 显示全部楼层
回复【5楼】ST-FAE-SALE:
---------------------------------
你好,我用的芯片是STM32F103RCT6 芯片是64脚的,手册上说有5个串口。。。可是串口4,5怎么用的?找不到对应的引脚啊。谢谢!!
目前在玩STM32,BBB,RPi
回复 支持 反对

使用道具 举报

4

主题

200

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
236
金钱
236
注册时间
2012-12-19
在线时间
0 小时
发表于 2014-4-15 22:44:01 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
你好,我用的芯片是STM32F103RCT6 芯片是64脚的,手册上说有5个串口。。。可是串口4,5怎么用的?找不到对应的引脚啊。谢谢!!
目前在玩STM32,BBB,RPi
回复 支持 反对

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2014-4-15 23:00:52 | 显示全部楼层
启动文件里面有没添加串口相应串口中断号
让我们的思维驾驭在电的速度之上!
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2015-1-5
在线时间
0 小时
发表于 2015-1-5 15:03:59 | 显示全部楼层
我觉得你的IO口配置反了,,,现在调好了吗
回复 支持 反对

使用道具 举报

37

主题

181

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
486
金钱
486
注册时间
2015-5-5
在线时间
34 小时
发表于 2015-9-6 20:34:49 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
发一个寄存器版的串口4的程序吧
弹起华丽的乐章 撕下最后的伪装
回复 支持 反对

使用道具 举报

37

主题

181

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
486
金钱
486
注册时间
2015-5-5
在线时间
34 小时
发表于 2015-10-20 13:13:54 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥。发一个串口4的打印函数吧printf
弹起华丽的乐章 撕下最后的伪装
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2011-4-21
在线时间
3 小时
发表于 2017-2-26 13:38:30 | 显示全部楼层
w0rmis20 发表于 2014-4-15 22:43
回复【5楼】ST-FAE-SALE:
---------------------------------
你好,我用的芯片是STM32F103RCT6&nbsp;芯片 ...

手册中没有说明,其他的兄弟是怎么找到啊?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-9-22 16:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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