找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3233|回复: 1
打印 上一主题 下一主题
收起左侧

一个stm32用ST-link在sram调试的具体配置方法(源码分享)

[复制链接]
跳转到指定楼层
楼主
ID:345396 发表于 2018-10-8 09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是我这几天试了好久才弄好的st-link进行sram调试,我总结一下方法,希望能帮到以后可能会的遇到这个问题的人
具体在附件上面。
附件上有详细的sram调试配置步骤   还有一个模板, 芯片型号是stn32f103rct6  如果用的是mini板的话可以直接套用。

stm32单片机源程序如下:
  1. #include "stm32f10x.h"


  2. void GPIO_Configuartion(void)
  3. {
  4.         GPIO_InitTypeDef GPIO_InitStructure;
  5.         
  6. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO,ENABLE);
  7.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0-->PA.8 端口配置
  8.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
  9.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz
  10.         GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化 GPIOA.8
  11.         GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA.8 输出高
  12.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //LED1-->PD.2 端口配置, 推挽输出
  13.         GPIO_Init(GPIOD, &GPIO_InitStructure); //推挽输出 ,IO 口速度为 50MHz
  14.         GPIO_SetBits(GPIOD,GPIO_Pin_2); //PD.2 输出高
  15. }
  16. void Exit_Configuration(void)
  17. {
  18.         GPIO_InitTypeDef GPIO_InitStructure;
  19.         EXTI_InitTypeDef EXTI_InitStructure;
  20.         NVIC_InitTypeDef NVIC_InitStructure;
  21.         
  22.         //开时钟
  23.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE);
  24.         
  25.         //配置GPIO
  26.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
  27.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  28.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  29.         
  30.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
  31.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  32.         GPIO_Init(GPIOC, &GPIO_InitStructure);
  33.         
  34.         //连接中断线
  35.         
  36.         
  37.         
  38.         //配置外部中断
  39.         GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource15);
  40.         EXTI_InitStructure.EXTI_Line = EXTI_Line15;
  41.         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  42.         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
  43.         EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  44.         EXTI_Init(&EXTI_InitStructure);
  45.         
  46.         GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource5);
  47.         EXTI_InitStructure.EXTI_Line = EXTI_Line5;
  48.         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  49.         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
  50.         EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  51.         EXTI_Init(&EXTI_InitStructure);
  52.         
  53.         //软件模拟产生中断
  54.         EXTI_GenerateSWInterrupt(EXTI_Line5);
  55.         
  56.         if(EXTI_GetITStatus(EXTI_Line5) != RESET)
  57.         {
  58.                 EXTI_ClearITPendingBit(EXTI_Line5);
  59.         }
  60.         
  61.         //配置中断优先级
  62.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  63.         
  64.         NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
  65.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  66.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  67.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  68.   NVIC_Init(&NVIC_InitStructure);
  69.         
  70.         NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
  71.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  72.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  73.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  74.   NVIC_Init(&NVIC_InitStructure);
  75.         
  76. }

  77. void EXTI9_5_IRQHandler(void)
  78. {                        
  79.         //delay_ms(10);   //消抖                        
  80.         if (EXTI_GetITStatus(EXTI_Line5) != RESET )//判断外部中断线1是否有中断
  81.          {
  82.                 EXTI_ClearITPendingBit(EXTI_Line5);//如果有中断,清除中断标志位
  83.                 GPIOA->BSRR=GPIO_Pin_8;//将PB0置1
  84.     GPIOD->BSRR=GPIO_Pin_2;                 
  85.         }               
  86.            
  87. }


  88. void EXTI15_10_IRQHandler(void)
  89. {
  90.         if ( EXTI_GetITStatus(EXTI_Line15) != RESET )//判断外部中断线8是否有中断
  91.          {
  92.                 EXTI_ClearITPendingBit(EXTI_Line15);
  93.                 GPIOA->BSRR=GPIO_Pin_8;//将PB0置1
  94.     GPIOD->BRR=GPIO_Pin_2;        
  95.          }
  96. }
  97. int main(void)
  98. {
  99.         unsigned int i = 0;
  100. SystemInit();
  101. GPIO_Configuartion();
  102.         
  103.         
  104. Exit_Configuration();

  105. while (1)
  106. {



  107. }
  108. }
复制代码

所有资料51hei提供下载:
template.rar (358.54 KB, 下载次数: 10)
调试步骤和脚本文件.rar (596 Bytes, 下载次数: 12)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:285416 发表于 2020-2-24 18:01 来自手机 | 只看该作者
没有调试步骤,只有脚本文件,你这纯属偏黑b呢.
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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