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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1272|回復: 1
收起左側

STVD Debug時出現報錯flash memory not accessible while core is running

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

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

單片機源程序如下:
  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.         //開機定時按鍵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分頻,系統時鐘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輸出設置
  83. /***********************************************************
  84. 函 數 名:        TIM1_PWM_SET  
  85. 函數描述:  TIM1輸出比較功能初始化。
  86. ***********************************************************/
  87. void TIM1_PWM_SET(void)
  88. {
  89.         TIM1->ARRH = 16000/256;
  90.         TIM1->ARRL = 16000%256;
  91.         TIM1->CR1  &= 0x8F;                        //向上計數模式邊沿對齊        
  92.         TIM1->CR1  |= 0x01;                        //使能TIM1計數器功能CEN=1
  93.         TIM1->BKR   = 0x80;                        //打開主輸出開關輸出PWM信號MOE=1               
  94. }

  95. /***********************************************************
  96. 函 數 名:        CHx_PWM_SET  
  97. 函數描述:  TIM1_CHx通道PWM信號輸出配置〉調節頻率占空比。
  98. 參    數:  unsigned long F_CHx,        頻率
  99.                         float Duty_CHx                        占空比*100
  100. 備    注:        正常占空比參數計算公式為c = Duty_CH3 * F_CH3,
  101.                         占空比為小數,如0.1、0.2。為線性點亮,占空比擴大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;                                        //計算占空比參數
  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;                                                //空閑狀態時OC3為高電平
  115. }

復制代碼

回復

使用道具 舉報

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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久91| 日韩精品一区二区三区 | 日韩欧美在线免费 | 红色av社区 | 精品福利在线视频 | 中文字幕乱码亚洲精品一区 | 成人免费在线小视频 | 欧美1区2区 | 国产精品成人国产乱 | 中文字幕亚洲欧美 | 中文字幕在线播放第一页 | 成人免费福利视频 | 日韩av手机在线观看 | 天天操网 | 五月综合激情婷婷 | 欧美一级毛片免费观看 | 欧美影院 | 欧美激情国产日韩精品一区18 | 亚洲国产中文在线 | 免费久久网站 | 一级片在线免费看 | 免费国产一区二区 | 日韩成人在线播放 | 亚洲有码转帖 | 国产午夜影院 | 日日摸天天添天天添破 | 91电影| 久久久.com | 欧美日韩精品 | 91久久国产综合久久91精品网站 | 91精品久久久久久久久久入口 | 欧美一级在线 | 黄色在线免费观看视频网站 | 羞羞视频免费在线观看 | 99久久精品一区二区毛片吞精 | 91精品国产手机 | 国产成人精品一区二区三区四区 | www.国产 | 日本一区二区三区四区 | 81精品国产乱码久久久久久 | 日韩在线精品 |