久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1394|回復(fù): 1
收起左側(cè)

STVD Debug時出現(xiàn)報錯flash memory not accessible while core is running

[復(fù)制鏈接]
ID:1047058 發(fā)表于 2022-11-7 17:27 | 顯示全部樓層 |閱讀模式
0.png

如圖,使用STVD編寫一個比較簡單的程序,發(fā)現(xiàn)按鍵無法完成KEY_Count計數(shù),跳轉(zhuǎn)不到下一步。
進(jìn)入Debug后,發(fā)現(xiàn)執(zhí)行程序后會跳出這樣的錯誤,網(wǎng)上找了沒有解決方法,Vcap電容已經(jīng)核對過是1uF沒有問題。
全部代碼在這里,很亂各位大佬將就看,順便求教哪里寫的不好我改一改!

單片機(jī)源程序如下:
  1. //main.c


  2. #include "stm8s.h"
  3. #include "gpio.h"

  4. //定義LED_1引腳
  5. #define LED1_ON                                GPIOC->ODR &= ~(1<<7)
  6. #define LED1_OFF                        GPIOC->ODR |= (1<<7)

  7. //定義LED_2引腳
  8. #define LED2_ON                                GPIOC->ODR &= ~(1<<6)
  9. #define LED2_OFF                        GPIOC->ODR |= (1<<6)

  10. //定義LED_3 引腳
  11. #define LED3_ON                                GPIOC->ODR &= ~(1<<5)
  12. #define LED3_OFF                        GPIOC->ODR |= (1<<5)

  13. //按鍵
  14. #define KEY1                                 (GPIOD->IDR & GPIO_PIN_4)
  15. #define KEY2                                 (GPIOD->IDR & GPIO_PIN_5)

  16.         //定義UV_LED紫外燈引腳
  17. #define UV_LED_ON                  GPIOC->ODR |= (0x01<<4)
  18. #define UV_LED_OFF                    GPIOC->ODR &= ~(0x01<<4)

  19. #define u8  uint8_t
  20. #define u16 uint16_t

  21. u8         Flag =0 ,
  22.         Key1_Flag = 0,
  23.         Mode_Work = 0,
  24.         PWR = 0;
  25. u8 UV_PWR = 0 ;

  26. void Key1_Working(void);

  27. void GPIO_init(void)
  28. {
  29.         //LED1 引腳 PC7 配置
  30.         GPIOC->DDR |= (0x01<<7);//PC7為輸出模式
  31.         GPIOC->CR1 |= (0x01<<7);//PC7推挽輸出
  32.         
  33.         //LED2 引腳 PC6 配置
  34.         GPIOC->DDR |= (0x01<<6);//PC6為輸出模式
  35.         GPIOC->CR1 |= (0x01<<6);//PC6推挽輸出
  36.         
  37.         //LED3 引腳 PC5 配置
  38.         GPIOC->DDR |= (0x01<<5);//PC5為輸出模式
  39.         GPIOC->CR1 |= (0x01<<5);//PC5推挽輸出
  40.         
  41.         GPIOD->DDR |= (0x01<<2);//PD2為輸出模式
  42.         GPIOD->CR1 |= (0x01<<2);//PD2推挽輸出
  43.         
  44.         GPIOD->DDR |= (0x01<<3);//PD2為輸出模式
  45.         GPIOD->CR1 |= (0x01<<3);//PD2推挽輸出
  46.                
  47.         //UV_LED紫外燈引腳 PC4 配置
  48.         GPIOC->DDR |= (0x01<<4);//PC4為輸出模式
  49.         GPIOC->CR1 |= (0x01<<4);//PC4推挽輸出
  50.         
  51.         //LIGHT_LED照明燈引腳 PC3 配置
  52.         GPIOC->DDR |= (0x01<<3);//PC3為輸出模式
  53.         GPIOC->CR1 |= (0x01<<3);//PC3推挽輸出
  54.         
  55.         //開機(jī)定時按鍵KEY1 引腳 PD4 配置
  56.         GPIOD->DDR &= ~(1<<4);//PD4為輸CHU模式
  57.         GPIOD->CR1 |= (0x00<<4);//PD4為上拉模式
  58.         GPIOD->CR2 |= (0x01<<4);//開外部中斷
  59.         
  60. }

  61. void SysClkInit( void )
  62. {
  63.   //  CLK->SWR = 0xe1;       //HSI為主時鐘源  16MHz CPU時鐘頻率
  64.     CLK->CKDIVR = 0x00;    //CPU時鐘0分頻,系統(tǒng)時鐘0分頻
  65. }

  66. void Delay(u16 Count)//延時1*Conut ms
  67. {
  68.         u8 i,j;
  69.         while(Count--)
  70.         {
  71.                 for(i=0;i<100;i++);
  72.                 for(j=0;j<50 ;j++);
  73.         }
  74. }


  75. void Res_Ctrl(void)
  76. {
  77.         UV_LED_OFF;
  78.         LED1_OFF;
  79.         LED2_OFF;
  80.         LED3_OFF;
  81. }


  82. //PWM輸出設(shè)置
  83. /***********************************************************
  84. 函 數(shù) 名:        TIM1_PWM_SET  
  85. 函數(shù)描述:  TIM1輸出比較功能初始化。
  86. ***********************************************************/
  87. void TIM1_PWM_SET(void)
  88. {
  89.         TIM1->ARRH = 16000/256;
  90.         TIM1->ARRL = 16000%256;
  91.         TIM1->CR1  &= 0x8F;                        //向上計數(shù)模式邊沿對齊        
  92.         TIM1->CR1  |= 0x01;                        //使能TIM1計數(shù)器功能CEN=1
  93.         TIM1->BKR   = 0x80;                        //打開主輸出開關(guān)輸出PWM信號MOE=1               
  94. }

  95. /***********************************************************
  96. 函 數(shù) 名:        CHx_PWM_SET  
  97. 函數(shù)描述:  TIM1_CHx通道PWM信號輸出配置〉調(diào)節(jié)頻率占空比。
  98. 參    數(shù):  unsigned long F_CHx,        頻率
  99.                         float Duty_CHx                        占空比*100
  100. 備    注:        正常占空比參數(shù)計算公式為c = Duty_CH3 * F_CH3,
  101.                         占空比為小數(shù),如0.1、0.2。為線性點亮,占空比擴(kuò)大100倍,
  102.                         計算公式改為c = Duty_CH3 * F_CH3 / 100;        
  103. ***********************************************************/
  104.         
  105. void CH4_PWM_SET(unsigned long F_CH4,float Duty_CH4)
  106. {
  107.         float d;
  108.         d = Duty_CH4 * F_CH4 / 100;                                        //計算占空比參數(shù)
  109.         TIM1->CCR4H = ((u16)(d))/256;
  110.         TIM1->CCR4L = ((u16)(d))%256;
  111.         TIM1->CCMR4   = 0x60;                                                //配置PWM為模式1
  112.         TIM1->CCER2  &= 0x1F;                                                //CC3P=0,OC3信號高電平有效
  113.         TIM1->CCER2  |= 0x10;                                                //CC3E=1,使能OC3輸出
  114.         TIM1->OISR   |= 0x40;                                                //空閑狀態(tài)時OC3為高電平
  115. }

復(fù)制代碼

回復(fù)

使用道具 舉報

ID:1047058 發(fā)表于 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++)        //傳遞占空比參數(shù),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--)        //傳遞占空比參數(shù),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--)        //傳遞占空比參數(shù),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. 函 數(shù) 名:        Key1_Working
  69. 函數(shù)描述: 開機(jī)控制按鍵配置
  70. 參 數(shù): LED_Count---------LED閃爍次數(shù);
  71. Key1_Flag---------Key1按鍵計數(shù),全局變量;
  72. Flag--------------開關(guān)機(jī)標(biāo)志位,全局變量;
  73. 備 注: 1、按一次開機(jī),蜂鳴器響兩次,亮電源綠燈;
  74. 2、按鍵情況執(zhí)行:
  75. 1)開機(jī);
  76. 2)高檔亮度;
  77. 3)中檔亮度;
  78. 4)低檔亮度;
  79. 5)爆閃SOS;
  80. 6)關(guān)機(jī);
  81. ***********************************************************/
  82. void Key1_Working(void)
  83. {       
  84. u8 LED_Count = 0 ; //LED閃爍次數(shù)

  85. switch(Key1_Flag)
  86. {       
  87. case 1://開機(jī),高檔亮度;
  88. Level1();
  89. Flag=1;        //開關(guān)機(jī)標(biāo)志位為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://關(guān)機(jī);

  101. Res_Ctrl();        //復(fù)位,所有功能關(guān)閉
  102. Key1_Flag = 0;        //按鍵計數(shù)為0
  103. Delay(500);       
  104. Flag = 0 ;        //開關(guān)機(jī)標(biāo)志位為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++;        //開始按鍵計數(shù)
  122. Key1_Working(); //執(zhí)行Key1控制函數(shù)
  123. while(KEY1==0); //若真,則一直進(jìn)入死循環(huán);若假,則跳過

  124. }
  125. }


  126. }
復(fù)制代碼
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品国产99 | 狠狠av | 久久免费精品 | 在线国产视频观看 | 中文字幕一区二区三区四区五区 | 精产国产伦理一二三区 | 亚洲综合视频 | 国产99久久精品一区二区300 | 综合久久久 | 91精品久久久久久久久久入口 | 久久国产成人 | 国产精品久久久久久久久久久久 | 国内精品一区二区 | 日本久久www成人免 成人久久久久 | 国产欧美一区二区三区免费 | 一级毛片在线看 | 成年网站在线观看 | 中国三级黄色录像 | 成人国产一区二区三区精品麻豆 | 国产三区av | 国产成人精品一区二区 | 伊人网国产 | 二区视频 | 成年视频在线观看福利资源 | 精品在线一区 | 在线观看午夜视频 | 国内精品久久影院 | 免费国产一区二区 | 亚洲欧洲国产视频 | 亚洲欧美一区二区三区国产精品 | 在线看av网址 | 国色天香综合网 | 午夜精品一区二区三区免费视频 | 狠狠综合久久av一区二区小说 | 亚洲精品二区 | 一区视频在线免费观看 | 欧美一区二区三区视频 | 6996成人影院网在线播放 | 国产精品一区二区在线播放 | 午夜免费网站 | 欧美国产一区二区三区 |