OpenEdv-开源电子网

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

stm32F 103 UART4 和UART5不能发送数据,着急

[复制链接]

15

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2015-7-10
在线时间
14 小时
发表于 2016-4-23 19:10:14 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
金钱
204
注册时间
2014-12-24
在线时间
48 小时
发表于 2016-4-23 19:21:08 | 显示全部楼层
103的有些芯片没有uart4和uart5的
回复

使用道具 举报

15

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2015-7-10
在线时间
14 小时
 楼主| 发表于 2016-4-23 19:28:25 | 显示全部楼层
1812090658@qq.c 发表于 2016-4-23 19:21
103的有些芯片没有uart4和uart5的

我用的是sTM32 F 103 vet6  有
回复

使用道具 举报

15

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2015-7-10
在线时间
14 小时
 楼主| 发表于 2016-4-23 19:36:44 | 显示全部楼层
ZRAINZ 发表于 2016-4-23 19:28
我用的是sTM32 F 103 vet6  有

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO, ENABLE);        //ê1ÄüUSART1£¬GPIOAê±Öó
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART5|RCC_APB1Periph_UART4 ,ENABLE);
// GPIO_PinRemapConfig(GPIO_FullRemap_USART3 , ENABLE);
        USART_DeInit(UART5);


        //UART5_TX   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;        //¸′óÃíÆíìêä3ö
  GPIO_Init(GPIOC, &GPIO_InitStructure);//3õê¼»ˉ
   
  //UART5_RX         
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;//
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//¸¡¿Õêäèë
  GPIO_Init(GPIOD, &GPIO_InitStructure);//3õê¼»ˉ

/*  //Usart1 NVIC ÅäÖÃ
  NVIC_InitStructure.NVIC_IRQChannel = UART5_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2 ;//ÇàÕ¼óÅÏè¼¶3
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;                //×óóÅÏè¼¶3
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQí¨μàê1Äü
        NVIC_Init(&NVIC_InitStructure);        //¸ù¾YÖ¸¶¨μÄ2Îêy3õê¼»ˉVIC¼Ä′æÆ÷*/
  
   //USART 3õê¼»ˉéèÖÃ

        USART_InitStructure.USART_BaudRate = 9600;//′®¿ú2¨ìØÂê
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;//×Ö3¤Îa8λêy¾Y¸ñê½
        USART_InitStructure.USART_StopBits = USART_StopBits_1;//ò»¸öí£Ö1λ
        USART_InitStructure.USART_Parity = USART_Parity_No;//ÎTÆæÅ¼D£Ñéλ
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//ÎTó2¼têy¾Yá÷¿ØÖÆ
        USART_InitStructure.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;        //êÕ·¢Ä£ê½


  USART_Init(UART5, &USART_InitStructure); //3õê¼»ˉ′®¿ú5
// USART_ITConfig(UART5, USART_IT_RXNE, ENABLE);//¿aÆô′®¿ú½óêüÖD¶Ï

  USART_Cmd(UART5, ENABLE);                    //ê1Äü′®¿ú5


这是程序配置
       
回复

使用道具 举报

13

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
金钱
204
注册时间
2014-12-24
在线时间
48 小时
发表于 2016-4-23 20:07:58 | 显示全部楼层
没看出有什么问题,我把我刚配置的程序发个你吧,刚测试过收发都正常(我的板子是zet6)
void RCC_Configuration(void)
{  
        SystemInit();
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);  
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4,ENABLE);
}
void GPIO_Configuration(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
       
        GPIO_Init(GPIOC,&GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;
        //GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;

        GPIO_Init(GPIOC,&GPIO_InitStructure);

}
void NVIC_Configuration(void)
{
        NVIC_InitTypeDef NVIC_InitStructure;

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);//设置优先级分组

        NVIC_InitStructure.NVIC_IRQChannel=UART4_IRQn;//指定中断通道
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//设置强占优先级
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;//设置从优先级
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

        NVIC_Init(&NVIC_InitStructure);

}
void USART_Configuration(void)
{
       
        USART_InitTypeDef USART_InitStructure;

        USART_InitStructure.USART_BaudRate=9600;
        USART_InitStructure.USART_WordLength=USART_WordLength_8b;
        USART_InitStructure.USART_StopBits=USART_StopBits_1;
        USART_InitStructure.USART_Parity=USART_Parity_No;
        USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
        USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
       
        USART_Init(UART4,&USART_InitStructure);
        USART_ITConfig(UART4,USART_IT_RXNE,ENABLE);
        USART_Cmd(UART4,ENABLE);
        USART_ClearFlag(UART4,USART_FLAG_TC);
}

你也可以用仿真器看看寄存器配置有没有正常
回复

使用道具 举报

15

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2015-7-10
在线时间
14 小时
 楼主| 发表于 2016-4-24 11:29:18 | 显示全部楼层
1812090658@qq.c 发表于 2016-4-23 20:07
没看出有什么问题,我把我刚配置的程序发个你吧,刚测试过收发都正常(我的板子是zet6)
void RCC_Configu ...

恩 ,挺奇怪的,我看看吧,我感觉我和你配的没啥区别。谢谢了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-16 20:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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