OpenEdv-开源电子网

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

关于串口复位的问题讨论?

[复制链接]

126

主题

820

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2012-10-28
在线时间
62 小时
发表于 2012-11-9 19:11:32 | 显示全部楼层 |阅读模式

/*
 * FileName:        main.c      
 * Author:          YuanYin  Version: QXW-Summer-V1.x  Date: 2010-4-29
 * Description:     例程主文件   
 */
 
/*****************************************************
 *  酷学玩 Q-Share We 快乐-开源-分享  
 *            
 *  如果你对我们的产品有任何建议或不满,请联系我们!  
 *          
 *  淘宝专营:Q-ShareWe.TaoBao.Com   
 *  技术论坛:Www.Q-ShareWe.Com    
 ****************************************************/
 
#include "stm32f10x.h"  //包含的头文件,此头文件会包含库中的一些头文件
#include <stdio.h> //包含标准c库的输入输出头文件

 void COM1_Init( void)       //Com1的初始化函数,Summer板引出的即Com1口

 //先定义一个初始化类型结构体变量,我们为这个结构体里的各个变量赋值,
 //最后将此变量传递到库里初始化寄存器的函数里即可。
 //当然,你也可以不这么做,直接给相关控制寄存器复制。
 //使用库可能会让程序慢上那么一点,但是库中的程序基本都进行了传入参数正确与否的校验,性能稳定。
 //而且调用方便,建议初学者使用库。
 GPIO_InitTypeDef GPIO_InitStructure; 
 USART_InitTypeDef USART_InitStructure;

 //先来处理串口对应的结构体数据,便于初始化串口寄存器
 //配置串口前,请打开代码文件"stm32f10x.h",找到宏HSE_Value的定义,
 //其默认值是8000000,表示8M外部晶振,请将此值改为正确的外部晶振值。
 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;  //模式

 //配置GPIO
 //只有开启了GPIO时钟,对应端口才可以正常工作
 //同时也要使能AFIO时钟,使用引脚的重映射功能和外部中断时需要使能AFIO的时钟。
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); //开启串口时钟

 //配置串口TX作为推挽复用端口
 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);
    
 //配置串口RX作为悬空输入端口
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
 GPIO_Init(GPIOA, &GPIO_InitStructure);

 //将写好数值的结构体传递给库初始化串口函数,便于给相应寄存器赋值
 USART_Init(USART1, &USART_InitStructure);
    
 //使能串口
 USART_Cmd(USART1, ENABLE);
}

int main(void)

    u8 i=0;
 //初始化系统,包括选择系统时钟频率。
 SystemInit();

 //初始化串口
 COM1_Init();  

 while(1)
 {  
  //循环使用printf打印字符
  i++;
  printf("QXW-Summer V1.x\n\r");
  printf("Www.Karlno.Com\n\r");
  printf("YuanYin 's Works...\n\r");
  printf("%d\n\r",i);
  if(i==100)i=0;
 }
}

//声明不使用半主机模式
#pragma import(__use_no_semihosting)
struct __FILE 

 int handle; 
}; 
FILE __stdout; 

_sys_exit(int x) 

 x = x; 
}

//重载函数,将fputc的字符丢给串口输出寄存器
//printf实际是靠这个函数来丢字符给串口的
int fputc(int ch, FILE *f)   
{
 USART_SendData(USART1, (uint8_t) ch);

 while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
 {}

 return ch;
}

#ifdef  USE_FULL_ASSERT
void assert_failed(uint8_t* file, uint32_t line)
{
 while (1);
}
#endif

/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/

我按复位键怎么不从0开始显示?有谁了解过?

坚持学习!就能成功!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-11-9 20:41:47 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

126

主题

820

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2012-10-28
在线时间
62 小时
 楼主| 发表于 2012-11-9 21:00:03 | 显示全部楼层
好,我试试 
坚持学习!就能成功!
回复 支持 反对

使用道具 举报

126

主题

820

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2012-10-28
在线时间
62 小时
 楼主| 发表于 2012-11-9 21:37:43 | 显示全部楼层
原子哥,用你的可以库程序,可以哦,为什么?请指教,多谢!
坚持学习!就能成功!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-11-9 21:47:53 | 显示全部楼层
说明你这部分代码不正常。呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-3-1 06:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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