OpenEdv-开源电子网

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

STM32F103 mini板子 串口实验,调不通求帮忙

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-5-11
在线时间
1 小时
发表于 2018-5-11 23:30:03 | 显示全部楼层 |阅读模式
1金钱
我对照了视频的代码写的,可以编译通过,下载进去板子,用串口助手发送字节,却没有返回相对应的值。再次对照几遍视频的代码还是发现不出来问题。代码如下


#include "stm32f10x.h"


void MY_USART1_Init(void)
{
GPIO_InitTypeDef GPIO_InitSture;
USART_InitTypeDef USART_InitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
       
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
       



        GPIO_InitSture.GPIO_Mode=GPIO_Mode_AF_PP;
        GPIO_InitSture.GPIO_Pin=GPIO_Pin_9;
        GPIO_InitSture.GPIO_Speed=GPIO_Speed_10MHz;
        GPIO_Init(GPIOA,&GPIO_InitSture);

       
        GPIO_InitSture.GPIO_Mode=GPIO_Mode_IN_FLOATING;
        GPIO_InitSture.GPIO_Pin=GPIO_Pin_10;
        GPIO_InitSture.GPIO_Speed=GPIO_Speed_10MHz;
  GPIO_Init(GPIOA,&GPIO_InitSture);

USART_InitStruct.USART_BaudRate=9600;   //波特率
USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;  //硬件流控制
USART_InitStruct.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;            // 使能
USART_InitStruct.USART_Parity=USART_Parity_No;                    //奇偶校验
USART_InitStruct.USART_StopBits=USART_StopBits_1;                  //停止位
USART_InitStruct.USART_WordLength=USART_WordLength_8b;                //字长

        USART_Init(USART1,&USART_InitStruct);        
  USART_Cmd(USART1,ENABLE);          //串口使能函数
   USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
         
         NVIC_InitStruct.NVIC_IRQChannel=USART1_IRQn;             //通道
         NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;            //是否开启中断通道
         NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1; // 设置抢占优先级   
         NVIC_InitStruct.NVIC_IRQChannelSubPriority=1; //设置子优先级
         NVIC_Init(&NVIC_InitStruct);




}
void USART1_IRQhandler(void)
       
{ u8 res;
        if(USART_GetITStatus(USART1,USART_IT_RXNE))       
        {
        res= USART_ReceiveData(USART1);
                USART_SendData(USART1,res);
       
        }



}

int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
MY_USART1_Init();
        while(1);
}  


最佳答案

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

找出问题了。晕死,是USART1_IRQHandler这个函数中的H写成了小写h
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-5-11
在线时间
1 小时
 楼主| 发表于 2018-5-11 23:30:04 | 显示全部楼层
XFhui123 发表于 2018-5-15 22:24
还没有解决,想不通呀

找出问题了。晕死,是USART1_IRQHandler这个函数中的H写成了小写h
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-5-13 00:29:14 | 显示全部楼层
把你的代码,替换到我们例程里面正常么?
回复

使用道具 举报

4

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2016-10-3
在线时间
15 小时
发表于 2018-5-13 16:13:02 | 显示全部楼层
也许是初始化顺序不对吧,不知道楼主解决没有
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-5-11
在线时间
1 小时
 楼主| 发表于 2018-5-15 22:23:41 | 显示全部楼层
正点原子 发表于 2018-5-13 00:29
把你的代码,替换到我们例程里面正常么?

复制到例程里面去也是没有接收没有反应,求解
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-5-11
在线时间
1 小时
 楼主| 发表于 2018-5-15 22:24:00 | 显示全部楼层
晨曦的love 发表于 2018-5-13 16:13
也许是初始化顺序不对吧,不知道楼主解决没有

还没有解决,想不通呀
回复

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4370
金钱
4370
注册时间
2017-5-30
在线时间
579 小时
发表于 2018-5-15 23:09:54 | 显示全部楼层
你先在中断里面打个断点,看看串口助手发送数据过来后能不能进入中断
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 16:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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