搜索
bottom↓
回复: 1

JTAG的问题

[复制链接]

出0入4汤圆

发表于 2009-2-17 10:35:29 | 显示全部楼层 |阅读模式
我使用MDK + ST-LINK II调试STM32F101C6.我将PA0~15作为16位数据线来调试一块LCD.
程序如下:
void GPIO_init(void)
{
  GPIO_InitTypeDef           GPIO_InitStructure;

  /*------------------- Resources Initialization -----------------------------*/
  /* GPIO Configuration */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

}

void RCC_Config(void)
{
ErrorStatus HSEStartUpStatus;                //定义外部高速晶体启动状态枚举变量
RCC_DeInit();                                //复位RCC外部设备寄存器到默认值
RCC_HSEConfig(RCC_HSE_ON);                   //打开外部高速晶振
HSEStartUpStatus = RCC_WaitForHSEStartUp();  //等待外部高速时钟准备好
if(HSEStartUpStatus == SUCCESS)              //外部高速时钟已经准别好
    {

   RCC_HCLKConfig(RCC_SYSCLK_Div1);            //配置AHB(HCLK)时钟=SYSCLK
   RCC_PCLK2Config(RCC_HCLK_Div1);             //配置APB2(PCLK2)钟=AHB时钟
   RCC_PCLK1Config(RCC_HCLK_Div2);             //配置APB1(PCLK1)钟=AHB 1/2时钟
   RCC_ADCCLKConfig(RCC_PCLK2_Div4);           //配置ADC时钟=PCLK2 1/4
      
   RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
                                               //配置PLL时钟 == 外部高速晶体时钟*9
   RCC_ADCCLKConfig(RCC_PCLK2_Div4);           //配置ADC时钟= PCLK2/4

      RCC_PLLCmd(ENABLE);                      //使能PLL时钟
   while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) //等待PLL时钟就绪
       {
       }
      RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//配置系统时钟 = PLL时钟
  
  }
  /* Enable GPIOA clocks */
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);

}



int  main(void)
{  
   unsigned char n;

   RCC_Config();
   GPIO_init();                                                    
   LCD_Initialize();

        LCD_SetXY(0,239);
        LCD_Write_Start();
        for(n=0; n<240;n++)
            LCD_Write_Data(0xF81F);
        LCD_Write_End();


        GPIO_ResetBits(GPIOA, GPIO_Pin_13);              
        GPIO_SetBits(GPIOA, GPIO_Pin_14);
        GPIO_ResetBits(GPIOA, GPIO_Pin_15);
   while(1);
   
}
在实际中发现PA13,PA14,PA5总是1,0,1。
我很奇怪,我不是已经禁止JTAG了,怎么还是不能把PA13,PA14,PA15当GPIO用呀?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2009-2-18 09:37:52 | 显示全部楼层
PA13,PA14,PA5是可以用做GPIO的,否则STM32不是自已找没趣吗,只不过你的ST—LINK II,好用吗,有人反应,不太好噢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-16 20:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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