OpenEdv-开源电子网

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

stm32 串口程序。。。。 无解的我 新手求助

[复制链接]

3

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-7-20
在线时间
6 小时
发表于 2016-7-23 18:20:51 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 feichan61 于 2016-7-23 18:22 编辑

首先我自己写了个程序不行,经过不断对照检查,发现好像是USART1_IPQHandler这里出了错,但没有编译和联接错误
然后将原子哥的这一段程序带进去没错,可以运行,功能可以实现,但返回去又不行。。。。。。
最后我自己重新又一模一样打了一遍又可以了。。。。。。
不知道出了什么问题

#include  "stm32f10x.h"
#include  "delay.h"

void  My_usart_init()
{
        /*定义一些结构体变量   gpio 串口的  和 中断的*/
GPIO_InitTypeDef GPIO_IO;
USART_InitTypeDef         USART_IO;
        NVIC_InitTypeDef   NVIC_IO;
/***************①使能串口、端口时钟******************************************************/
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//①
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);        //************************************************************8
//*****************②GPIO口端口的设置****************************************
GPIO_IO.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_IO.GPIO_Pin=GPIO_Pin_9;
        GPIO_IO.GPIO_Speed=GPIO_Speed_10MHz;
         GPIO_Init(GPIOA,&GPIO_IO);
        GPIO_IO.GPIO_Mode=GPIO_Mode_IN_FLOATING;
        GPIO_IO.GPIO_Pin=GPIO_Pin_10;
        GPIO_Init(GPIOA,&GPIO_IO);
//****************③串口初始化************************************
USART_IO.USART_BaudRate=9600;//设置波特率
USART_IO.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//硬件流控制是使能还是失能
                                                                        //USART_HardwareFlowControl_None  硬件流失能
        USART_IO.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;//USART_Mode_Tx发送使能  USART_Mode_Rx  接收使能
        USART_IO.USART_Parity=USART_Parity_No;//设置奇偶模式   
                                              //USART_Parity_NO 奇偶失能  USART_Parity_Enven 偶使能  USART_Parity_Odd  奇模式     
        USART_IO.USART_WordLength=USART_WordLength_8b;//设置字节长度
        USART_IO.USART_StopBits=USART_StopBits_1;//设置发送停止的数目
        USART_Init(USART1,&USART_IO);        
        USART_Cmd(USART1,ENABLE);
//************⑤开机中断和初始化NVIC******************
        USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//开启接收中断
        //*****************中断优先级的设立*********************************
        NVIC_IO.NVIC_IRQChannel=USART1_IRQn;//使能或者失能指定的IRQ通道
        NVIC_IO.NVIC_IRQChannelCmd=ENABLE;//
        NVIC_IO.NVIC_IRQChannelPreemptionPriority=1;//成员NVIC_IRQChannel占得优先级
        NVIC_IO.NVIC_IRQChannelSubPriority=1;//NVIC_IO.NVIC_IRQChannel从优先级
        NVIC_Init(&NVIC_IO);        
}

void USART1_IPQHandler()
{
        u8 test;
        if(USART_GetITStatus(USART1,USART_IT_RXNE))
        {
                test=USART_ReceiveData(USART1);
                USART_SendData(USART1,test);

        }
}//自己第一遍写的

//void USART1_IRQHandler(void)
//{
//        u8 res;
//         if(USART_GetITStatus(USART1,USART_IT_RXNE))
// {
//     res= USART_ReceiveData(USART1);
//     USART_SendData(USART1,res);   
//  }
//}   //原子哥的

//void  USART1_IRQHandler()
//{
//        u8 test;
//        if(USART_GetITStatus(USART1,USART_IT_RXNE))
//        {
//                test=USART_ReceiveData(USART1);
//                USART_SendData(USART1,test);
//        }
//}   //重打的

int main()
{        
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        My_usart_init();        
        while(1);
}




最佳答案

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

USART1_IPQHandler 应该改成 USART1_IRQHandler一个是P一个是R,注意看清楚 这是.S文件里固定的中断函数名,名错了中断自然找不到函数,就运行不是你想要的结果了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2016-7-23 18:20:52 | 显示全部楼层
USART1_IPQHandler 应该改成 USART1_IRQHandler一个是P一个是R,注意看清楚
这是.S文件里固定的中断函数名,名错了中断自然找不到函数,就运行不是你想要的结果了
让我们的思维驾驭在电的速度之上!
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11544
金钱
11544
注册时间
2014-4-1
在线时间
1315 小时
发表于 2016-7-23 21:15:39 | 显示全部楼层

确实奇怪,不懂。


回复

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2016-7-20
在线时间
6 小时
 楼主| 发表于 2016-7-25 19:40:41 | 显示全部楼层
DongInker 发表于 2016-7-23 21:39
USART1_IPQHandler 应该改成 USART1_IRQHandler一个是P一个是R,注意看清楚
这是.S文件里固定的中断函数名 ...

。。。。。。真的没发现
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 04:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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