stm32的问题,.什么我这个USART通信程序发不出数据??
10班陈大葱22号2010/08/06电子技术 IP:黑龙江
ourdev上发了没人回...
从上午一直折腾到现在..串口调试助手就是收不到数据...
开发版用英蓓特给的例程编译调试是可以正常发送数据的,可是上了我自己的程序就不行,不知道为什么TAT..
在这个程序要实现的功能是 每隔一段一段时间发0xa4到PC那,用的是V3.0的固件库(例程用的是2.0)
具体现象是,程序能正常运行,串口调试助手没有收到数据,但调试助手每次关闭->开启一次串口都会收到一个0x00,什么波特率下都会收到
大家帮帮看看为什么吧..我基本是一个字一个字跟搜到的例程对过了..可是就是发不出数据..

main.c文件内容如下:


#include "stm32f10x.h"
#include "misc.h"


/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;


/* Private function prototypes -----------------------------------------------*/
void RCC_Configuration(void);
void Delay(__IO uint32_t nCount);
void NVIC_Configuration(void);
void GPIO_Configuration(void);
void EXTI_Configuration(void);
void USART_Configuration(void);



/* Private function ----------------------------------------------------------*/
int main(void)
{
  RCC_Configuration();  
  NVIC_Configuration();
  GPIO_Configuration();  
  EXTI_Configuration();  
  USART_Configuration();
  
while (1)
  {
USART_SendData(USART1, (u8) 0xa4);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
      {
      }
Delay(0xaffff);
  }

}


/*-----------------------------------------------------------------------  
RCC配置函数,包括各个外设时钟的开启
-----------------------------------------------------------------------*/  
void RCC_Configuration(void)
{    
SystemInit();

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

}


/*-----------------------------------------------------------------------  
NVIC配置函数
此为模板
-----------------------------------------------------------------------*/  
void NVIC_Configuration(void)
{
#ifdef  VECT_TAB_RAM  
  /* Set the Vector Table base location at 0x20000000 */  
  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);  
#else  /* VECT_TAB_FLASH  */
  /* Set the Vector Table base location at 0x08000000 */  
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);    
#endif

}


/*-----------------------------------------------------------------------  
GPIO配置函数
此为模板
-----------------------------------------------------------------------*/
void GPIO_Configuration(void)
{
/*TX在PA9,配置为推挽*/
GPIO_XXXXXXXXXXXXXXXXIO_Pin = GPIO_Pin_9;
GPIO_XXXXXXXXXXXXXXXXIO_Mode = GPIO_Mode_Out_PP;
GPIO_XXXXXXXXXXXXXXXXIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);

/*RX在PA10,配置为浮空[s:9]A8为发送按钮,配置为浮空*/
GPIO_XXXXXXXXXXXXXXXXIO_Pin =GPIO_Pin_8 | GPIO_Pin_10;
GPIO_XXXXXXXXXXXXXXXXIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA,&GPIO_InitStructure);
}

/*-----------------------------------------------------------------------  
EXTI配置函数,对应GPIO端口与中断线的链接也在这里
此为模板
-----------------------------------------------------------------------*/
void EXTI_Configuration(void)
{

}

/*-----------------------------------------------------------------------  
USART配置
-----------------------------------------------------------------------*/  
void USART_Configuration(void)
{
USART_InitTypeDef USART_InitStructure;
USART_ClockInitTypeDef USART_ClockInitStructure;

USART_XXXXXXXXXXXXXXXXART_BaudRate = 115200;
USART_XXXXXXXXXXXXXXXXART_WordLength = USART_WordLength_8b;
USART_XXXXXXXXXXXXXXXXART_StopBits = USART_StopBits_1;
USART_XXXXXXXXXXXXXXXXART_Parity = USART_Parity_No;
USART_XXXXXXXXXXXXXXXXART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_XXXXXXXXXXXXXXXXART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_XXXXXXXXXXXXXXXXXXXXXART_Clock = USART_Clock_Disable;
USART_XXXXXXXXXXXXXXXXXXXXXART_CPOL = USART_CPOL_Low;
USART_XXXXXXXXXXXXXXXXXXXXXART_CPHA = USART_CPHA_2Edge;
USART_XXXXXXXXXXXXXXXXXXXXXART_LastBit = USART_LastBit_Disable;

USART_ClockInit(USART1,&USART_ClockInitStructure);
USART_Init(USART1,&USART_InitStructure);


USART_Cmd(USART1,ENABLE);
}


/*-----------------------------------------------------------------------  
延时函数  
-----------------------------------------------------------------------*/  
void Delay(__IO uint32_t nCount)
{
  for(; nCount != 0; nCount--);
}
/*-----------------------------------------------------------------------  
assert
-----------------------------------------------------------------------*/  
#ifdef  USE_FULL_ASSERT

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

/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
来自:电子信息 / 电子技术
12
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
nhlijiaming
13年11个月前 IP:未同步
245668
STM32找猴子吧....
stm32据说稳定性不如avr, avr的价格啊........
我在2440和cortex-m0两个考虑中....
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
warmonkey
13年11个月前 IP:未同步
245681
引用第1楼nhlijiaming于2010-08-06 21:56发表的  :
STM32找猴子吧....
stm32据说稳定性不如avr, avr的价格啊........
我在2440和cortex-m0两个考虑中....


AVR稳定性其实不如STM32,因为虽然AVR运行比STM32稳定,但是STM32的保护措施更多。比如我的ECG处理上就应用了时钟安全系统(CSS),如果晶振挂掉,系统切换到内部时钟,并且放出故障信号。STM32看门狗也是很强悍地说。NMI,定时器刹车和ADC看门狗更是利器。

2440和M0完全不同的档次,现在大家都用6410有条件搞个吧,性能好,用得爽。不过开发起来其实一样的。
M0号称代替51,因为硅片面积比51小。
STM8可以干掉AVR,STM8使用更方便。而且据说AVR以后要登记供货,比较麻烦,散货可能难以拿到。


LZ把整个工程打包吧,估计是哪里配置错了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
nhlijiaming
13年11个月前 IP:未同步
245690
反正AVR已经杯具了
6410.....先玩玩arm9再说
M0做小东西倒是方便些, 但现在推广还不怎么好...
(好像跑题了)
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
10班陈大葱22号作者
13年11个月前 IP:未同步
245718
阿莫说实际上AT的大客户供货还是稳定的,散户懒得理而已..具体怎么样我也不知道了,不了解
上CM0吧,我前段时间也买了LPC1114的开发板,上面集成colink调试器,可是我电脑用不了 TAT.
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jrcsh
13年11个月前 IP:未同步
245722
~~~你也跑去玩哪东西~~~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
10班陈大葱22号作者
13年11个月前 IP:未同步
245727
啊ourdev上有人找到问题了,Tx端口PA9设置错,要设置成AF_PP,不能是OUT_PP
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
warmonkey
13年11个月前 IP:未同步
245898
祝贺楼主解决问题
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
冲压发动机
13年11个月前 IP:未同步
246051
32位片子果然NB!俺看不懂!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
azenis_xing
13年10个月前 IP:未同步
247665
请问楼主,我没有出现你写代码的错误,但是结果和你的一样,是怎么回事啊?急!!!!!!!!!!!!望尽快给答复,谢谢!

附我的代码:
#include "stm32f10x.h"

/* Private variables ---------------------------------------------------------*/
GPIO_InitTypeDef GPIO_InitStructure;

/* Private function prototypes -----------------------------------------------*/
void delay(uint32_t nCount);
void UART1_GPIO_Configuration(void);
void UART1_Configuration(void);

/**********************************主函数****************************************/
int main(void)
{
  /* Setup STM32 system (clock, PLL and Flash configuration) */
  SystemInit();

  /* GPIOx and AFIO clock enable */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);
   /* USART1 clock enable */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

  UART1_GPIO_Configuration();
  UART1_Configuration();

  while(1)
  {
        GPIO_SetBits(GPIOB, GPIO_Pin_5);
        USART_SendData(USART1, (u8) 0xa4);
        while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
        delay(0xffff);
        GPIO_ResetBits(GPIOB, GPIO_Pin_5);
        delay(0xfffff);
  }

}

/*********************************配置UART的GPIO口*************************************/
void UART1_GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
// Configure USART1_Tx as alternate function push-pull
GPIO_XXXXXXXXXXXXXXXXIO_Pin = GPIO_Pin_9;
GPIO_XXXXXXXXXXXXXXXXIO_Speed = GPIO_Speed_50MHz;
GPIO_XXXXXXXXXXXXXXXXIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);

// Configure USART1_Rx as input floating
GPIO_XXXXXXXXXXXXXXXXIO_Pin = GPIO_Pin_10;
GPIO_XXXXXXXXXXXXXXXXIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);

// Configure GPIOB
GPIO_XXXXXXXXXXXXXXXXIO_Pin = GPIO_Pin_5;
GPIO_XXXXXXXXXXXXXXXXIO_Speed = GPIO_Speed_50MHz;
GPIO_XXXXXXXXXXXXXXXXIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);

}


/************************************配置串口参数***********************************/

void UART1_Configuration(void)
{

   USART_InitTypeDef USART_InitStructure;
   USART_ClockInitTypeDef USART_ClockInitStructure;


   USART_XXXXXXXXXXXXXXXXART_BaudRate = 115200;
   USART_XXXXXXXXXXXXXXXXART_WordLength = USART_WordLength_8b;
   USART_XXXXXXXXXXXXXXXXART_StopBits = USART_StopBits_1;
   USART_XXXXXXXXXXXXXXXXART_Parity = USART_Parity_No ;
   USART_XXXXXXXXXXXXXXXXART_HardwareFlowControl = USART_HardwareFlowControl_None;
   USART_XXXXXXXXXXXXXXXXART_Mode = USART_Mode_Rx | USART_Mode_Tx;

   USART_XXXXXXXXXXXXXXXXXXXXXART_Clock = USART_Clock_Disable;
   USART_XXXXXXXXXXXXXXXXXXXXXART_CPOL = USART_CPOL_Low;
   USART_XXXXXXXXXXXXXXXXXXXXXART_CPHA = USART_CPHA_2Edge;
   USART_XXXXXXXXXXXXXXXXXXXXXART_LastBit = USART_LastBit_Disable;

   USART_ClockInit(USART1,&USART_ClockInitStructure);

   USART_Init(USART1, &USART_InitStructure);

   USART_Cmd(USART1, ENABLE);
}

/***********************************延时子函数***********************************/

void delay(uint32_t nCount)
{
  for(; nCount != 0; nCount--);
}
/********************************End of function def********************************/

#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

/**
  * @}
  */
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
10班陈大葱22号作者
13年10个月前 IP:未同步
248100
楼上...我也找不到什么问题...你上ourdev去问问吧
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
warmonkey
13年10个月前 IP:未同步
248844
我都是上开发板和JLink,然后逐个比对寄存器数据。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
10班陈大葱22号
学者 机友 笔友
文章
98
回复
1129
学术分
8
2006/08/24注册,3个月5天前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}