你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 7825|回复: 7

STM32F100C8 用STMISP下载程序后不运行

[复制链接]

1

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
2019-5-27
发表于 2011-11-17 16:27:46 | 显示全部楼层 |阅读模式
各位同仁:

     大家好,最近在接触stm32的开发,遇到些问题,希望能给予帮助,将十分感谢!

     我用MDK4.21编译的STM32程序,生成HEX文件。BOOT0置1,BOOT1置0,通过FLASH LOADER DEMOSTRATOR 串口下载时,勾上:JUMP TO PROGRAM 不能运行。 下载完成后,BOOT0置0,BOOT1置1,重启单片机仍不能运行.
到底怎么回事?
     

用了一个最简单的测试程序,如下代码:

  #include "stm32f10x.h"

GPIO_InitTypeDef GPIO_InitStructure;
 ErrorStatus HSEStartUpStatus;
void RCC_Configuration(void)
{  
  /* RCC system reset(for debug purpose) */
  RCC_DeInit();
 
  /* Enable HSE */
  RCC_HSEConfig(RCC_HSE_ON);

  /* Wait till HSE is ready */
  HSEStartUpStatus = RCC_WaitForHSEStartUp();
  if(HSEStartUpStatus == SUCCESS)
  {
    /* Enable Prefetch Buffer */
    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

    /* Flash 2 wait state */
    FLASH_SetLatency(FLASH_Latency_2);
 
    /* HCLK = SYSCLK */
    RCC_HCLKConfig(RCC_SYSCLK_Div1);
 
    /* PCLK2 = HCLK */
    RCC_PCLK2Config(RCC_HCLK_Div1);

    /* PCLK1 = HCLK/2 */
    RCC_PCLK1Config(RCC_HCLK_Div2);

    /* PLLCLK = 8MHz * 9 = 72 MHz */
    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_6);

    /* Enable PLL */
    RCC_PLLCmd(ENABLE);

    /* Wait till PLL is ready */
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
    {
    }

    /* Select PLL as system clock source */
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

    /* Wait till PLL is used as system clock source */
    while(RCC_GetSYSCLKSource() != 0x08)
    {
    }
  }
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
  /* Enable GPIO_LED clock */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
 
}

void LED_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
// 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP)
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}

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
}
void Delay(vu32 nCount)
{
for(; nCount != 0; nCount--);
}

int main(void)
{
#ifdef DEBUG
  debug();
#endif
SystemInit();
RCC_Configuration();
NVIC_Configuration();
LED_Init();
for( ; ;)
{
   GPIO_SetBits(GPIOB, GPIO_Pin_9);
   Delay(0x8ffff);
   GPIO_SetBits(GPIOB, GPIO_Pin_10);
   Delay(0x8ffff);
}
}
#ifdef  DEBUG
/*******************************************************************************
* Function Name  : assert_failed
* Description    : Reports the name of the source file and the source line number
*                  where the assert_param error has occurred.
* Input          : - file: pointer to the source file name
*                  - line: assert_param error line source number
* Output         : None
* Return         : None
*******************************************************************************/
void assert_failed(u8* file, u32 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

   是不是在MDK4.01设置不对!
     谁遇到过这样的问题?请高手帮忙分析一下!

PS:  复位电路没有问题,如附件reset.bmp

    MCU电路图如下面附件MCU+Schematic.pdf

希望大家帮着检查一下吧,谢谢
RESET.JPG

MCU Schematic.pdf

下载

34.23 KB, 下载次数: 24, 下载积分: ST金币 -1

<
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2011-11-17 18:06:36 | 显示全部楼层

RE:STM32F100C8 用STMISP下载程序后不运行

这个问题是由于程序引起的。你可以下载一个例程,看看能不能运行,另外,最好使用仿真器来仿真一下,这样就能解决问题的根本了。
回复 支持 反对

使用道具 举报

1

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
2019-5-27
 楼主| 发表于 2011-11-18 08:16:59 | 显示全部楼层

回复:STM32F100C8 用STMISP下载程序后不运行

 2楼 你好,谢谢你的回复!
 我用例程也下载试过,也不运行;包括把所有的原编译文件都删除掉再重新编译,只对几个gpio口进行操作的程序编译下载等都不见效。
我没有留jtag口,仿真还有点困难。
可否能给给点建议,软件出问题一般会在什么地方出现这种问题?
回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2011-11-18 09:25:22 | 显示全部楼层

RE:STM32F100C8 用STMISP下载程序后不运行

没有JTAG接口仿真是不好的,具体是硬件问题,还是软件问题,通过仿真就能看出来。看你的代码是没有问题的。
回复 支持 反对

使用道具 举报

1

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
2019-5-27
 楼主| 发表于 2011-11-18 09:53:07 | 显示全部楼层

回复:STM32F100C8 用STMISP下载程序后不运行

 谢谢你的回复,那我现在怎么解决这个问题呀?对单片机进行飞线来进行Jtag仿真吗?
回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2011-11-18 11:53:44 | 显示全部楼层

RE:STM32F100C8 用STMISP下载程序后不运行

最好是飞线用JTAG来仿真,另外,你外部晶振是多大的?
回复 支持 反对

使用道具 举报

1

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
2019-5-27
 楼主| 发表于 2011-11-18 15:56:49 | 显示全部楼层

回复:STM32F100C8 用STMISP下载程序后不运行

 外部晶振是12M的,我把我的原理图也发上去啦,在一楼附件上,你帮着看看,对你的帮助十分感谢!
回复 支持 反对

使用道具 举报

0

主题

2

回帖

0

蝴蝶豆

新手上路

最后登录
2016-7-2
发表于 2016-6-8 08:57:25 | 显示全部楼层
我有时候也是啊,好像知道问题解决了没有,同样的文件,有时候可以直接用,有时候跑到一半就卡住了。感觉是下载不成功的原因,不知道你的怎样呢
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版