OpenEdv-开源电子网

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

STM32F103C8T6串口程序编译错误,,求解,急!!!

[复制链接]

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2017-7-30
在线时间
8 小时
发表于 2017-9-8 14:04:45 | 显示全部楼层 |阅读模式
5金钱
程序如下:void UsartIoInit2(void)
{
        GPIO_InitTypeDef  GPIO_InitStructure;
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);
        GPIO_InitStructure.GPIO_Mode =GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Pin =GPIO_Pin_2;
        GPIO_InitStructure.GPIO_Speed =GPIO_Speed_10MHz;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IN_FLOATING ;
        GPIO_InitStructure.GPIO_Pin =GPIO_Pin_3;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
         
}

void UsartInit2(void)
{
        USART_InitTypeDef  USART_InitStructure;
        NVIC_InitTypeDef   NVIC_InitStructure;
         USART_DeInit(USART2);//¸′λ′®¿ú
        USART_InitStructure.USART_BaudRate =9600;
        USART_InitStructure.USART_HardwareFlowControl =USART_HardwareFlowControl_None;
        USART_InitStructure.USART_Mode =USART_Mode_Tx|USART_Mode_Rx;
        USART_InitStructure.USART_WordLength =USART_WordLength_8b;
        USART_InitStructure.USART_StopBits =USART_StopBits_1 ;
        USART_InitStructure.USART_Parity =USART_Parity_No;
        USART_Init(USART2,&USART_InitStructure);
        USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);
        USART_Cmd(USART2,ENABLE);
       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
        NVIC_InitStructure.NVIC_IRQChannel=USART2_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelCmd =ENABLE ;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority =1;
        NVIC_Init(&NVIC_InitStructure);   
       
}

void USART2_IRQHandler(void)
{
  if(USART_GetITStatus(USART2, USART_IT_RXNE)==SET)
        {
           combuf[comnum]=USART_ReceiveData(USART2);
                 comnum++;
                if(comnum>1)
                {
                  comnum=0;
                        flag=0;
                }                                        
        }
}


新手程序的结构不太完善,大神可以帮帮我,具体程序在附件里
QQ图片20170908135804.png

串口1 - 副本.zip

2.67 MB, 下载次数: 143

最佳答案

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

把co.c中的串口2中断函数直接注释掉!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2017-7-12
在线时间
26 小时
发表于 2017-9-8 14:04:46 | 显示全部楼层
把co.c中的串口2中断函数直接注释掉!
回复

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2017-7-30
在线时间
8 小时
 楼主| 发表于 2017-9-8 14:06:42 | 显示全部楼层
新手求大神帮忙..
回复

使用道具 举报

13

主题

156

帖子

0

精华

高级会员

Rank: 4

积分
883
金钱
883
注册时间
2017-8-7
在线时间
200 小时
发表于 2017-9-8 14:15:31 | 显示全部楼层
重复定义了 在uart.c里面已经有串口2中断处理函数了  你又重新定义了一个 冲突了
回复

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2017-7-30
在线时间
8 小时
 楼主| 发表于 2017-9-8 14:21:28 | 显示全部楼层
那我怎么解决那??
回复

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2017-7-30
在线时间
8 小时
 楼主| 发表于 2017-9-8 14:24:49 | 显示全部楼层
旺仔奶豆 发表于 2017-9-8 14:15
重复定义了 在uart.c里面已经有串口2中断处理函数了  你又重新定义了一个 冲突了

那我该怎么解决这个问题那?
回复

使用道具 举报

13

主题

156

帖子

0

精华

高级会员

Rank: 4

积分
883
金钱
883
注册时间
2017-8-7
在线时间
200 小时
发表于 2017-9-8 14:27:57 | 显示全部楼层
两种办法:1、把你自己写的代码删掉,直接用uart.c里面的 2、从工程中把Uart.c移除,main.c里包含的UART.H也删掉,代码用你自己写的
回复

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2017-7-30
在线时间
8 小时
 楼主| 发表于 2017-9-8 14:30:54 | 显示全部楼层
好的解决了
回复

使用道具 举报

15

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2014-11-21
在线时间
48 小时
发表于 2017-9-8 16:49:03 | 显示全部楼层
在不想执行的中断处理代码前加__weak
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 05:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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