OpenEdv-开源电子网

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

帮我看这个串口实验程序哪里出错了,调了一个小时了(已解决)

[复制链接]

20

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2011-2-28
在线时间
0 小时
发表于 2011-3-22 20:25:18 | 显示全部楼层 |阅读模式
#include "stm32f10x.h"

#include <stdio.h>
const char menu[] ="串口程序";

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
void GPIO_Configuration(void)
{
 GPIO_InitTypeDef GPIO_InitStructure;

   /* Configure USART1 Tx (PA.09) as alternate function push-pull */
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
   GPIO_Init(GPIOA, &GPIO_InitStructure);
   
   /* Configure USART1 Rx (PA.10) as input floating */
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
   GPIO_Init(GPIOA, &GPIO_InitStructure);

}

void USART1_Configuration(void)
{
 USART_InitTypeDef USART_InitStructure;
 
 USART_InitStructure.USART_BaudRate            = 115200  ; 
 USART_InitStructure.USART_WordLength          = USART_WordLength_8b; 
 USART_InitStructure.USART_StopBits            = USART_StopBits_1;
 USART_InitStructure.USART_Parity              = USART_Parity_No ;  
 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;   
 USART_InitStructure.USART_Mode                = USART_Mode_Rx | USART_Mode_Tx;  
 USART_Init(USART1,&USART_InitStructure);


USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); 

 USART_Cmd(USART1,ENABLE);    
}

 

void NVIC_Configuration(void)
{
 
   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

 #ifdef  VECT_TAB_RAM 
 
   NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
 #else  
 
   NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);  
 #endif
}


void RCC_Configuration(void)
{
     SystemInit();
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA , ENABLE);

}

void Init_Periph_USART1(void)
{
     RCC_Configuration();
     GPIO_Configuration();
     NVIC_Configuration();
     USART1_Configuration();
}


void SendMessage(void)
{
       printf(menu);
}

 

int main(void)

     Init_Periph_USART1();
     SendMessage();
     USART_SendData(USART1,'A');
     while(1)
       {

       }
}
/*******************************************************************************
* Function Name  : PUTCHAR_PROTOTYPE
* Description    : Retargets the C library printf function to the USART.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
PUTCHAR_PROTOTYPE
{
  /* Place your implementation of fputc here */
  /* e.g. write a character to the USART */
  USART_SendData(USART1, (u8) ch);

  /* Loop until the end of transmission */
  while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
  {}

  return ch;
}
#ifdef  USE_FULL_ASSERT

/**
  * @brief  Reports the name of the source file and the source line number
  *   where the assert_param error has occurred.
  * @param file: pointer to the source file name
  * @param line: assert_param error line source number
  * @retval : None
  */
void assert_failed(uint8_t* file, uint32_t line)
{
  while (1)
  {
 
  }
}
#endif

void USART1_IRQHandler(void)
{
     u8 c;
     if(USART_GetITStatus(USART1,USART_FLAG_RXNE) != RESET)
     { 
         c=USART_ReceiveData(USART1);
        USART_SendData(USART1,c);     
     }
 
}
这里给出的是主函数,我完全用的固件库建的工程。
程序的基本内容是:往PC上发数据,然后通过串口调试助手给stm32发数据,stm32接到并返给PC

深蓝嵌入式工作室
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-3-23 01:03:00 | 显示全部楼层
回复【楼主位】bluesky_kun:
-------------------------------
参考我的串口例程。
我们的是串口空闲发送一个数据到电脑,当电脑发送数据下来的时候,返回收到的数据。和你的一样的意思。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

头像被屏蔽

27

主题

61

帖子

2

精华

禁止发言

积分
518
金钱
518
注册时间
2011-1-10
在线时间
4 小时
发表于 2011-4-11 12:47:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 16:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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