OpenEdv-开源电子网

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

stm32F1-mini板萌新串口通信问题求教

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2020-5-30
在线时间
3 小时
发表于 2020-6-13 18:02:14 | 显示全部楼层 |阅读模式
1金钱
跟着原子哥的视频进行的学习写的程序,但是串口打开后输入信息的不到反馈,串口助手打印不出信息T-T
代码如下

#include "stm32f10x.h"

void USART1init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct;
  USART_InitTypeDef USART_InitStrue;
  NVIC_InitTypeDef NVIC_InitStrue;
  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能时钟
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
  
  GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
  GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;
  GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;
  GPIO_Init(GPIOA,&GPIO_InitStruct);//初始化IO口
  
  GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;
  GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;
  GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;
  GPIO_Init(GPIOA,&GPIO_InitStruct);
  
  USART_InitStrue.USART_BaudRate=115200;
  USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
  USART_InitStrue.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;
  USART_InitStrue.USART_Parity=USART_Parity_No;
  USART_InitStrue.USART_StopBits=USART_StopBits_1;
  USART_InitStrue.USART_WordLength=USART_WordLength_8b;
  
  USART_Init(USART1,&USART_InitStrue);//初始化串口
  
  USART_Cmd(USART1,ENABLE);//使能串口
  
  USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//开启接收中断
  
  NVIC_InitStrue.NVIC_IRQChannel=USART1_IRQn;
  NVIC_InitStrue.NVIC_IRQChannelCmd=ENABLE;
  NVIC_InitStrue.NVIC_IRQChannelPreemptionPriority=1;
  NVIC_InitStrue.NVIC_IRQChannelSubPriority=1;
  
  NVIC_Init(&NVIC_InitStrue);//中断优先级设置
  
}

void USART_IRQHandler(void)//中断服务函数
{
u8 res;
if(USART_GetITStatus(USART1,USART_IT_RXNE))
{
  res = USART_ReceiveData(USART1);
  USART_SendData(USART1,res);
}
}
void LED_Init(void)
{

GPIO_InitTypeDef  GPIO_InitStructure;
  
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);  

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;     
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
GPIO_Init(GPIOA, &GPIO_InitStructure);      
GPIO_SetBits(GPIOA,GPIO_Pin_8);      
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;        
GPIO_Init(GPIOD, &GPIO_InitStructure);        
GPIO_SetBits(GPIOD,GPIO_Pin_2);        
}
  

int main(void)
{
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  USART1init();
  LED_Init();
  
  GPIO_SetBits(GPIOD,GPIO_Pin_2);
  while(1);
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2020-6-3
在线时间
7 小时
发表于 2020-7-1 11:37:45 | 显示全部楼层
串口助手的波特率和停止位那些都和代码一致了么?
回复

使用道具 举报

11

主题

2153

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4938
金钱
4938
注册时间
2015-1-10
在线时间
619 小时
发表于 2020-7-1 13:29:14 | 显示全部楼层
void USART1_IRQHandler(void) 你写成了void USART_IRQHandler(void)                    
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 06:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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