找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

STVD Debug时出现报错flash memory not accessible while core is running

查看数: 1680 | 评论数: 1 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-11-7 17:27

正文摘要:

如图,使用STVD编写一个比较简单的程序,发现按键无法完成KEY_Count计数,跳转不到下一步。 进入Debug后,发现执行程序后会跳出这样的错误,网上找了没有解决方法,Vcap电容已经核对过是1uF没有问题。 全 ...

回复

ID:1047058 发表于 2022-11-7 17:32
  1. void LED_PWM(u16 LED_Flag)
  2. {
  3. int n = 0;
  4. if(LED_Flag==1)
  5. {
  6. for(n=0;n<91;n++)        //传递占空比参数,m从0~90缓慢点亮
  7. {
  8. CH4_PWM_SET(16000,n);
  9. Delay(500);        //为使点亮平缓线性,延迟500ms
  10. }
  11. LED_Flag = 0;
  12. }
  13. if(LED_Flag==2)
  14. {
  15. for(n=91;n>50;n--)        //传递占空比参数,m从0~90缓慢点亮
  16. {
  17. CH4_PWM_SET(16000,n);
  18. Delay(500);        //为使点亮平缓线性,延迟500ms
  19. }
  20. LED_Flag = 0;
  21. }

  22. if(LED_Flag==3)
  23. {
  24. for(n=51;n>20;n--)        //传递占空比参数,m从0~90缓慢点亮
  25. {
  26. CH4_PWM_SET(16000,n);
  27. Delay(500);        //为使点亮平缓线性,延迟500ms
  28. }
  29. LED_Flag = 0;
  30. }


  31. }


  32. void Level1(void)
  33. {
  34. LED1_ON;
  35. LED2_OFF;
  36. LED3_OFF;
  37. LED_PWM(1);
  38. }

  39. void Level2(void)
  40. {
  41. LED1_OFF;
  42. LED2_ON;
  43. LED3_OFF;

  44. LED_PWM(2);
  45. }

  46. void Level3(void)
  47. {
  48. LED1_OFF;
  49. LED2_OFF;
  50. LED3_ON;

  51. LED_PWM(3);
  52. }

  53. void Level4(void)
  54. {
  55. int t;
  56. while(1)
  57. {
  58. for(t=0;t<3;t++)
  59. {
  60. CH4_PWM_SET(16000,20);
  61. Delay(3000);
  62. }
  63. CH4_PWM_SET(0,0);
  64. Delay(30000);
  65. }
  66. }

  67. /***********************************************************
  68. 函 数 名:        Key1_Working
  69. 函数描述: 开机控制按键配置
  70. 参 数: LED_Count---------LED闪烁次数;
  71. Key1_Flag---------Key1按键计数,全局变量;
  72. Flag--------------开关机标志位,全局变量;
  73. 备 注: 1、按一次开机,蜂鸣器响两次,亮电源绿灯;
  74. 2、按键情况执行:
  75. 1)开机;
  76. 2)高档亮度;
  77. 3)中档亮度;
  78. 4)低档亮度;
  79. 5)爆闪SOS;
  80. 6)关机;
  81. ***********************************************************/
  82. void Key1_Working(void)
  83. {       
  84. u8 LED_Count = 0 ; //LED闪烁次数

  85. switch(Key1_Flag)
  86. {       
  87. case 1://开机,高档亮度;
  88. Level1();
  89. Flag=1;        //开关机标志位为1
  90. break;

  91. case 2://中档亮度;
  92. Level2();       
  93. break;

  94. case 3://低档亮度;
  95. Level3();
  96. break;

  97. case 4://爆闪SOS;
  98. Level4();
  99. break;

  100. case 5://关机;

  101. Res_Ctrl();        //复位,所有功能关闭
  102. Key1_Flag = 0;        //按键计数为0
  103. Delay(500);       
  104. Flag = 0 ;        //开关机标志位为0
  105. break;       
  106. default: break;       
  107. }
  108. }







  109. void main(void)
  110. {
  111. Res_Ctrl();
  112. GPIO_init();
  113. SysClkInit();
  114. TIM1_PWM_SET();
  115. //EXTI_Init();
  116. while(1)
  117. {
  118. if(KEY1==0)        //检测到KEY1按下
  119. {
  120. Delay(1000);        //消抖
  121. Key1_Flag++;        //开始按键计数
  122. Key1_Working(); //执行Key1控制函数
  123. while(KEY1==0); //若真,则一直进入死循环;若假,则跳过

  124. }
  125. }


  126. }
复制代码

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

Powered by 单片机教程网

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