打印

刚学习串口 刚接触STM32 求助高手,菜鸟 求拍砖

[复制链接]
2780|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
630511630511|  楼主 | 2011-11-20 21:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一次发帖 如题 我的函数编译下载以后连LED都不闪了 LED初始化没问题 试过了,如果去掉打印语句灯就正常,但无论怎么样都没发送,还有例程里面#include "stm32_eval.h"是哪个文件我找不到,不加可以吗??  中文的注释是我自己的理解 如果有错误还请指正,刚刚看其他贴好像说用到串口的IO要初始化,但我买的板配的程序没初始化IO啊,只有串口初始那部分,这是怎么回事,没学C  所以有点吃力 程序如下
#include "stm32f10x_lib.h"
#include <stdio.h>
#define PUTCHAR_PROTOTYPE  int fputc(int ch, FILE *f)

USART_InitTypeDef  USART_InitStruct;


void Delay(u32 time) //软件延时程序,不是精确的延时
{u32 i,j;
  
for(j=0; j<time; j++)
{
    for(i=0;i<12000;i++);
}
}
void usart_init(void)       //串口初始化
{
//注意3.5的版本InitStruct和例程里面名字有差别的
USART_InitTypeDef  USART_InitStruct;               
USART_InitStruct.USART_BaudRate = 115200;
USART_InitStruct.USART_WordLength = USART_WordLength_8b;   //设置为8位
USART_InitStruct.USART_StopBits = USART_StopBits_1;    //设置停止位为1位
USART_InitStruct.USART_Parity = USART_Parity_No;    //没有奇偶校验位
USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;  //设置发送或接收
USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;  //没有数据流控制,什么意思,百度一下
//设置时钟串口COM1时钟并根据上面参数初始化并使能
USART_Init(USART1, &USART_InitStruct);      
}
PUTCHAR_PROTOTYPE
{
  USART_SendData(USART1, (int) ch);

  while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
  {
  }
return ch;
}


int main(void)
{
  LED_config(); //初始LED
  usart_init(); //初始化LED和串口
   printf("\n\r---------------------------------------------\n ");
     printf("\n\rW12345678\n ");
      printf("\n\r第一次学习串口发送123\n");

  while (1)
  {
    GPIO_ResetBits(GPIOA, GPIO_Pin_2|GPIO_Pin_3);
  Delay(0x00005F);
    GPIO_SetBits(GPIOA, GPIO_Pin_2|GPIO_Pin_3);
  Delay(0x00005F);
  printf("\n\r神舟I号 串口1测试程序123\n");


  }

}


再问一下下面部分是干嘛的  屏蔽后好像不影响程序
#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)
{
  /* User can add his own implementation to report the file name and line number,
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  /* Infinite loop */
  while (1)
{
  }
}
#endif
最后以个人角度奉劝大家一句,买板不要买神舟板。。。。你买了会懂得
至于你信不信,我反正信了~~~~~
沙发
630511630511|  楼主 | 2011-11-20 21:23 | 只看该作者
自己顶上去  在线等。。。。。。。。。。。。。。。。。

使用特权

评论回复
板凳
630511630511|  楼主 | 2011-11-20 21:34 | 只看该作者
为了学习  努力再顶

使用特权

评论回复
地板
630511630511|  楼主 | 2011-11-20 22:53 | 只看该作者
心灰意冷啊 再顶顶~~

使用特权

评论回复
5
ddb_21ic| | 2011-11-20 23:02 | 只看该作者
检查RCC初始化,UART1时装打开了吗?GPIO设置,TX脚设置正确吗?

使用特权

评论回复
6
630511630511|  楼主 | 2011-11-20 23:05 | 只看该作者
初始化是按他的例程复制的 用例程的可以发。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

38

帖子

2

粉丝