芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

STM32闭环步进电机驱动程序芯片解密

芯片解密STM32单片机源程序如下:

  1. include "main.h"
  2. #include "adc.h"
  3. #include "tim.h"
  4. #include "gpio.h"
  5. /* Private includes ----------------------------------------------------------*/
  6. /* USER CODE BEGIN Includes */
  7. #include "includes.h"
  8. #include "lcd.h"
  9. /* USER CODE END Includes */
  10. /* Private typedef -----------------------------------------------------------*/
  11. /* USER CODE BEGIN PTD */
  12. /* USER CODE END PTD */
  13. /* Private define ------------------------------------------------------------*/
  14. /* USER CODE BEGIN PD */
  15. #define HALL_GPIO GPIOA
  16. //START 任务
  17. //设置任务优先级
  18. #define START_TASK_PRIO                              10 //开始任务的优先级设置为最低
  19. //设置任务堆栈大小
  20. #define START_STK_SIZE                                    64
  21. //任务堆栈        
  22. OS_STK START_TASK_STK[START_STK_SIZE];
  23. //任务函数
  24. void start_task(void *pdata);        
  25.                            
  26. //LED0任务
  27. //设置任务优先级
  28. #define LED0_TASK_PRIO                               2
  29. //设置任务堆栈大小
  30. #define LED0_STK_SIZE                                      64
  31. //任务堆栈        
  32. OS_STK LED0_TASK_STK[LED0_STK_SIZE];
  33. //任务函数
  34. void led0_task(void *pdata);
  35. //Speed_ADC 任务
  36. //设置任务优先级
  37. #define SPEED_ADC_TASK_PRIO                               1
  38. //设置任务堆栈大小
  39. #define SPEED_ADC_STK_SIZE                                      64
  40. //任务堆栈        
  41. OS_STK SPEED_ADC_TASK_STK[SPEED_ADC_STK_SIZE];
  42. //任务函数
  43. void speed_adc_task(void *pdata);
  44. /* USER CODE END PD */
  45. /* Private macro -------------------------------------------------------------*/
  46. /* USER CODE BEGIN PM */
  47. /* USER CODE END PM */
  48. /* Private variables ---------------------------------------------------------*/
  49. /* USER CODE BEGIN PV */
  50. //定时器2捕获通道参数
  51. /* Private variables ---------------------------------------------------------*/
  52. uint16_t         Channel1HighTime, Channel2HighTime, Channel3HighTime; //高电平时间
  53. uint16_t         Channel1Period, Channel2Period, Channel3Period; //周期
  54. uint8_t          Channel1Edge = 0, Channel2Edge = 0, Channel3Edge = 0; //上升沿
  55. uint16_t         Channel1Percent, Channel2Percent, Channel3Percent; //占空比
  56. uint16_t        Channel1PercentTemp[3] = {0, 0, 0};
  57. uint8_t         Channel1TempCount = 0;
  58. uint16_t         Channel1RisingTimeLast=0, Channel1RisingTimeNow, Channel1FallingTime;
  59. uint16_t         Channel2RisingTimeLast=0, Channel2RisingTimeNow, Channel2FallingTime;
  60. uint16_t         Channel3RisingTimeLast=0, Channel3RisingTimeNow, Channel3FallingTime;
  61. extern int motor_period;
  62. extern int motor_duty;
  63. extern int clock_wise;
  64. int current_speed = 0;
  65. int ADC_Speed = 500;  //555 / 90% = 500
  66. int ADC_Value = 555;  //
  67. BOOLEAN state = 0; // 0 关闭中 1 启动中
  68. /* USER CODE END PV */
  69. /* Private function prototypes -----------------------------------------------*/
  70. void SystemClock_Config(void);
  71. /* USER CODE BEGIN PFP */
  72. /* USER CODE END PFP */
  73. /* Private user code ---------------------------------------------------------*/
  74. /* USER CODE BEGIN 0 */
  75. /* USER CODE END 0 */
  76. /**
  77.   * @brief  The application entry point.
  78.   * @retval int
  79.   */
  80. int main(void)
  81. {
  82.   /* USER CODE BEGIN 1 */
  83.         HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
  84.         OSInit();
  85.         OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//创建起始任务
  86.   /* USER CODE END 1 */
  87.   
  88.   /* MCU Configuration--------------------------------------------------------*/
  89.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  90.   HAL_Init();
  91.   /* USER CODE BEGIN Init */
  92.   /* USER CODE END Init */
  93.   /* Configure the system clock */
  94.   SystemClock_Config();
  95.   /* USER CODE BEGIN SysInit */
  96.                
  97.   /* USER CODE END SysInit */
  98.   /* Initialize all configured peripherals */
  99.   MX_GPIO_Init();
  100.   MX_TIM1_Init();
  101.   MX_ADC1_Init();
  102.   MX_TIM2_Init();
  103.   /* USER CODE BEGIN 2 */
  104.         OSStart();
  105.   /* USER CODE END 2 */
  106.   /* Infinite loop */
  107.   /* USER CODE BEGIN WHILE */
  108.   while (1)
  109.   {
  110.     /* USER CODE END WHILE */
  111.     /* USER CODE BEGIN 3 */
  112.   }
  113.   /* USER CODE END 3 */
  114. }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信