OpenEdv-开源电子网

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

大佬们救救吧,我跟着B站原子哥视频写的代码,但是串口助手没反应。大家帮忙看看吧

[复制链接]

5

主题

7

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2021-9-21
在线时间
5 小时
发表于 2021-9-21 17:21:00 | 显示全部楼层 |阅读模式
4金钱
这是main.c的代码
#include "stm32f10x.h"
#include "delay.h"
#include "uart.h"


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


这是uart.c的代码
#include "uart.h"


void My_USART_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStruct;
        USART_InitTypeDef USART_InitStruct;
        NVIC_InitTypeDef NVIC_InitStruct;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1, ENABLE);//使能GPIO USART1时钟
       
        GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10;
        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStruct);
       
        GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
        GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_Init(GPIOA,&GPIO_InitStruct);                //初始化GPIO
       
        USART_InitStruct.USART_BaudRate = 115200;
        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
       
        USART_Cmd(USART1, ENABLE);                //使能串口
       
        USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);        //使能USART1的接收中断
       
        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 USART_IRQHandler(void)
{
        uint8_t res;
        if(USART_GetITStatus(USART1, USART_IT_RXNE))
        {
                res = USART_ReceiveData(USART1);
                USART_SendData(USART1, res);
        }
}




这是串口助手截图

这是串口助手截图
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

1061

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
3627
金钱
3627
注册时间
2019-8-14
在线时间
1054 小时
发表于 2021-9-22 12:07:54 | 显示全部楼层
检查com口对不对应板子,板子有没有接上线帽,还有中断函数不需要调用,不要在while里面调用它
回复

使用道具 举报

7

主题

480

帖子

0

精华

高级会员

Rank: 4

积分
783
金钱
783
注册时间
2021-4-15
在线时间
305 小时
发表于 2021-9-22 12:22:35 | 显示全部楼层
你这用的是啥板呀!虚拟串口弄的?
回复

使用道具 举报

5

主题

7

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2021-9-21
在线时间
5 小时
 楼主| 发表于 2021-9-22 15:04:27 | 显示全部楼层
日渐秃兀 发表于 2021-9-22 12:22
你这用的是啥板呀!虚拟串口弄的?

stm32f103rb
回复

使用道具 举报

5

主题

7

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2021-9-21
在线时间
5 小时
 楼主| 发表于 2021-9-22 15:15:44 | 显示全部楼层
hou18 发表于 2021-9-22 12:07
检查com口对不对应板子,板子有没有接上线帽,还有中断函数不需要调用,不要在while里面调用它

多谢,中断函数不需要调用。硬件连接没有问题,但好像不是这些问题导致的
回复

使用道具 举报

7

主题

480

帖子

0

精华

高级会员

Rank: 4

积分
783
金钱
783
注册时间
2021-4-15
在线时间
305 小时
发表于 2021-9-22 15:33:19 | 显示全部楼层
DHN2021 发表于 2021-9-22 15:15
多谢,中断函数不需要调用。硬件连接没有问题,但好像不是这些问题导致的

你找个正常的例程烧一下看看,如果可以再照着那个学。
日常敲键--头秃一片
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 15:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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