OpenEdv-开源电子网

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

stm32 JTAG 仿真问题

[复制链接]

3

主题

12

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-3-23
在线时间
2 小时
发表于 2014-5-12 09:21:10 | 显示全部楼层 |阅读模式
5金钱
为什么在jtag仿真时,用printf映象到USART1时程序不能运行,而把printf屏蔽后就可以运行啊

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

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-3-23
在线时间
2 小时
 楼主| 发表于 2014-5-12 09:41:16 | 显示全部楼层
回复

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2014-5-12 10:49:57 | 显示全部楼层
初始化了串口没有?贴你的代码看看。
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-3-23
在线时间
2 小时
 楼主| 发表于 2014-5-12 11:39:24 | 显示全部楼层
初始化了,把printf屏蔽了就好使,不知道怎么回事
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-5-12 12:37:51 | 显示全部楼层
回复【4楼】lizhichao2012:
---------------------------------
贴代码看下
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-3-23
在线时间
2 小时
 楼主| 发表于 2014-5-12 12:40:51 | 显示全部楼层
/*Include---------------------------*/
#include"stm32f10x_lib.h" //°ü???ù?????·????
#include<stdio.h>

//----------------?????ù?÷--------------------
void Delay_MS(u16 dly);
void RCC_Configuration(void);
void GPIO_Configuration(void);
void USART1_Configuration(void);
void SysTick_Configuration(void);
/*******************************************************************************
* Function Name: putc
* Description : ??printf?????ó??USART1
* Input       : ch,f
* Output      : None
* Return      : ch
*******************************************************************************/
int putc(int ch,FILE *f)
{
USART_SendData(USART1,ch);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET);
return ch;
}
/*******************************************************************************
* Function Name: main
* Description : Main program.
* Input       : None
* Output      : None
* Return      : None
*******************************************************************************/ 
int main(void)
{
u8 min,sec;
#ifdef DEBUG
debug();
#endif

//------------??????------------
RCC_Configuration();
GPIO_Configuration();
USART1_Configuration();
SysTick_Configuration();
  while(1)
{
FlagStatus Status; 
Status = SysTick_GetFlagStatus(SysTick_FLAG_COUNT); 
if(Status == RESET) 



else 

  sec++;
if(sec==60)
 sec=0;
 USART_SendData(USART1,sec);
     while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET);
printf("%d",sec);
    } 


// printf("%d",sec);

// Delay_MS(2000);
}

}

/*******************************************************************************
* Function Name: Delay_Ms
* Description : delay 1 ms.
* Input       : dly (ms)
* Output      : None
* Return      : None
*******************************************************************************/
void Delay_MS(u16 dly)
{
u16 i,j;
for(i=0;i<dly;i++)
for(j=1000;j>0;j--);
}

/*******************************************************************************
* Function Name: RCC_Configuration
* Description : Configures the different system clocks.
* Input       : None
* Output      : None
* Return      : None
*******************************************************************************/
void RCC_Configuration(void)
{
//----------????????RC?§??-----------
RCC_DeInit(); //?????????±????
RCC_HSEConfig(RCC_HSE_ON); //???????????????±?? 
while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET); //?????????????±?????????÷

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //Enable refetch Buffer
FLASH_SetLatency(FLASH_Latency_2); //Flash 2 wait state

RCC_HCLKConfig(RCC_SYSCLK_Div1); //HCLK = SYSCLK
RCC_PCLK2Config(RCC_HCLK_Div1); //PCLK2 =  HCLK
RCC_PCLK1Config(RCC_HCLK_Div2); //PCLK1 = HCLK/2
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); //PLLCLK = 8MHZ * 9 =72MHZ
RCC_PLLCmd(ENABLE); //Enable LLCLK

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //Wait till LLCLK is ready
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //Select LL as system clock
while(RCC_GetSYSCLKSource()!=0x08); //Wait till LL is used as system clock source

//---------?ò???à?????è?±??--------------------
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1| RCC_APB2Periph_AFIO,ENABLE); //????APB2???è??GPIOA???±??  
// RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);
//?????±??
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ,ENABLE);
}

/*******************************************************************************
* Function Name: GPIO_Configuration
* Description : ??????GPIO???è
* Input       : None
* Output      : None
* Return      : None
*******************************************************************************/
void GPIO_Configuration(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;

  /* Configure USARTx_Tx as alternate function push-pull */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

  /* Configure USARTx_Rx as input floating */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

}
/*******************************************************************************
* Function Name: USART1_Configuration
* Description : ??????USART1
* Input       : None
* Output      : None
* Return      : None
*******************************************************************************/
void USART1_Configuration(void)
{
USART_InitTypeDef  U3;
U3.USART_BaudRate =9600;
U3.USART_WordLength = USART_WordLength_8b;
U3.USART_StopBits = USART_StopBits_1;
U3.USART_Parity = USART_Parity_No;
U3.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;
U3.USART_HardwareFlowControl = USART_HardwareFlowControl_None; 
USART_Init(USART1, &U3);
USART_Cmd(USART1,ENABLE);
}
/*******************************************************************************
* Function Name: USART1_Configuration
* Description : ??????USART1
* Input       : None
* Output      : None
* Return      : None
*******************************************************************************/
void SysTick_Configuration(void)
{
SysTick_CounterCmd(SysTick_Counter_Disable);
SysTick_ITConfig(DISABLE);
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//9Mhz
SysTick_SetReload(9000*1000); //9000/9M
SysTick_CounterCmd(SysTick_Counter_Enable );
// SysTick_ITConfig(DISABLE);

}
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-3-23
在线时间
2 小时
 楼主| 发表于 2014-5-12 17:56:15 | 显示全部楼层
回复【5楼】Badu_Space:
---------------------------------
*Include---------------------------*/ 
#include"stm32f10x_lib.h"  //°ü???ù?????·???? 
#include<stdio.h> 

//----------------?????ù?÷-------------------- 
void Delay_MS(u16 dly); 
void RCC_Configuration(void); 
void GPIO_Configuration(void); 
void USART1_Configuration(void); 
void SysTick_Configuration(void); 
/******************************************************************************* 
* Function Name: putc 
* Description : ??printf?????ó??USART1 
* Input       : ch,f 
* Output      : None 
* Return      : ch 
*******************************************************************************/ 
int putc(int ch,FILE *f) 

USART_SendData(USART1,ch);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET); 
return ch; 

/******************************************************************************* 
* Function Name: main 
* Description : Main program. 
* Input       : None 
* Output      : None 
* Return      : None 
*******************************************************************************/  
int main(void) 
{
u8 min,sec; 
#ifdef DEBUG 
debug(); 
#endif 

//------------??????------------ 
RCC_Configuration(); 
GPIO_Configuration(); 
USART1_Configuration(); 
SysTick_Configuration(); 
  while(1) 

FlagStatus Status;  
Status = SysTick_GetFlagStatus(SysTick_FLAG_COUNT);  
if(Status == RESET)  
{  

}  
else  
{  
  sec++; 
if(sec==60) 
 sec=0; 
 USART_SendData(USART1,sec);
     while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET); 
printf("%d",sec); 
    }  


//  printf("%d",sec); 

//  Delay_MS(2000); 




/******************************************************************************* 
* Function Name: Delay_Ms 
* Description : delay 1 ms. 
* Input       : dly (ms) 
* Output      : None 
* Return      : None 
*******************************************************************************/ 
void Delay_MS(u16 dly) 

u16 i,j; 
for(i=0;i<dly;i++) 
for(j=1000;j>0;j--); 


/******************************************************************************* 
* Function Name: RCC_Configuration 
* Description : Configures the different system clocks. 
* Input       : None 
* Output      : None 
* Return      : None 
*******************************************************************************/ 
void RCC_Configuration(void) 

//----------????????RC?§??----------- 
RCC_DeInit();  //?????????±???? 
RCC_HSEConfig(RCC_HSE_ON); //???????????????±??  
while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET); //?????????????±?????????÷ 

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //Enable refetch Buffer 
FLASH_SetLatency(FLASH_Latency_2);  //Flash 2 wait state 

RCC_HCLKConfig(RCC_SYSCLK_Div1);  //HCLK = SYSCLK 
RCC_PCLK2Config(RCC_HCLK_Div1);  //PCLK2 =  HCLK 
RCC_PCLK1Config(RCC_HCLK_Div2);  //PCLK1 = HCLK/2 
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); //PLLCLK = 8MHZ * 9 =72MHZ 
RCC_PLLCmd(ENABLE);  //Enable LLCLK 

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //Wait till LLCLK is ready 
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //Select LL as system clock 
while(RCC_GetSYSCLKSource()!=0x08);  //Wait till LL is used as system clock source 

//---------?ò???à?????è?±??-------------------- 
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1| RCC_APB2Periph_AFIO,ENABLE); //????APB2???è??GPIOA???±??    
// RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE); 
//?????±?? 
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ,ENABLE); 


/******************************************************************************* 
* Function Name: GPIO_Configuration 
* Description : ??????GPIO???è 
* Input       : None 
* Output      : None 
* Return      : None 
*******************************************************************************/ 
void GPIO_Configuration(void) 

  GPIO_InitTypeDef GPIO_InitStructure; 

  /* Configure USARTx_Tx as alternate function push-pull */ 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; 
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 
  GPIO_Init(GPIOA, &GPIO_InitStructure); 

  /* Configure USARTx_Rx as input floating */ 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; 
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; 
  GPIO_Init(GPIOA, &GPIO_InitStructure); 


/******************************************************************************* 
* Function Name: USART1_Configuration 
* Description : ??????USART1 
* Input       : None 
* Output      : None 
* Return      : None 
*******************************************************************************/ 
void USART1_Configuration(void) 

USART_InitTypeDef  U3; 
U3.USART_BaudRate =9600; 
U3.USART_WordLength = USART_WordLength_8b; 
U3.USART_StopBits = USART_StopBits_1; 
U3.USART_Parity = USART_Parity_No; 
U3.USART_Mode = USART_Mode_Rx|USART_Mode_Tx; 
U3.USART_HardwareFlowControl = USART_HardwareFlowControl_None;  
USART_Init(USART1, &U3); 
USART_Cmd(USART1,ENABLE); 

/******************************************************************************* 
* Function Name: USART1_Configuration 
* Description : ??????USART1 
* Input       : None 
* Output      : None 
* Return      : None 
*******************************************************************************/ 
void SysTick_Configuration(void) 

SysTick_CounterCmd(SysTick_Counter_Disable); 
SysTick_ITConfig(DISABLE); 
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//9Mhz 
SysTick_SetReload(9000*1000); //9000/9M 
SysTick_CounterCmd(SysTick_Counter_Enable ); 
// SysTick_ITConfig(DISABLE); 

}
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-8 03:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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