单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于STM32的智能循迹小车源程序

  [复制链接]
跳转到指定楼层
楼主
第几秒 发表于 2017-7-28 14:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于STM32的智能循迹小车源程序,希望对大家有参考价值!

单片机源程序如下:
  1. /* Includes ------------------------------------------------------------------*/
  2. #include "stm32f10x.h"
  3. #include "stm32f10x_tim.h"
  4. #include "stm32f10x_gpio.h"
  5. #include "stm32f10x_flash.h"
  6. #include "stm32f10x_exti.h"
  7. #include "stm32f10x_it.h"
  8. #include "systick.h"
  9. #include "misc.h"

  10. #include "stm32f10x_it.h"

  11. //#define infra1 GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7);
  12. //#define infra2 GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_9);

  13. #define tube1 GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_9);
  14. #define tube2 GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_11);
  15. #define tube3 GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_13);
  16. #define tube4 GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_15);


  17. extern FlagStatus  Status;

  18. u8 flag=0;

  19. extern u16 TIM1Compare1[2] = {0x0,0x3FFF};
  20. extern u16 TIM1Compare2[3] = {0x7100,0x7000,0x3fff};
  21. extern u16 TIM1Compare3[2] = {0x0,0x3FFF};
  22. extern u16 TIM1Compare4[3] = {0x7400,0x8FFF,0x3FFF};
  23. extern u16 tubecnt=0;
  24. extern u16 juli;

  25. void GPIO_Configuration(void);
  26. void TIM_Configuration(void);
  27. void RCC_Configuration(void);
  28. void NVIC_Configuration(void);
  29. void stop__(void);
  30. void zhi_fast(void);
  31. void zhi(void);
  32. void zhi_slow(void);
  33. void zhi_wait(void);
  34. void zuoxiao(void);
  35. void zuoda(void);
  36. void zuodada(void);
  37. void youxiao(void);
  38. void youda(void);
  39. void xunji_qian(void);
  40. void xunji_hou(void);
  41. void xunji_dan(void);
  42. EXTI_InitTypeDef EXTI_InitStructure;
  43. NVIC_InitTypeDef NVIC_InitStructure;
  44. TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
  45. TIM_OCInitTypeDef  TIM1_OCInitStructure;


  46. int main(void)
  47. {
  48.        
  49.         RCC_Configuration();
  50.         GPIO_Configuration();
  51.         TIM_Configuration();
  52.     NVIC_Configuration();
  53.         delay_init();


  54.         while(1)
  55.         {       
  56.                 if(GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_10)==1)
  57.                 {
  58.                         if(flag==0)
  59.                          xunji_hou();
  60.                         if(flag==1)
  61.                         xunji_qian();
  62.                 }
  63.                 if(GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_10)==0) xunji_dan();
  64.         }       
  65. }

  66. /*TIM2  TIM3 的中断优先级*/
  67. void NVIC_Configuration(void)
  68. {
  69.         #ifdef  VECT_TAB_RAM  
  70.           /* Set the Vector Table base location at 0x20000000 */
  71.           NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
  72.         #else  /* VECT_TAB_FLASH  */
  73.           /* Set the Vector Table base location at 0x08000000 */
  74.          
  75.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  76.        
  77.         NVIC_InitStructure.NVIC_IRQChannel =TIM2_IRQChannel;
  78.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  79.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  80.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  81.         NVIC_Init(&NVIC_InitStructure);

  82.         NVIC_InitStructure.NVIC_IRQChannel =TIM3_IRQChannel;
  83.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  84.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
  85.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  86.         NVIC_Init(&NVIC_InitStructure);

  87.         #endif
  88. }

  89. void GPIO_Configuration(void)
  90. {
  91.   GPIO_InitTypeDef GPIO_InitStructure;

  92. /*TIM1  PWM  输出:A8:CH1 / A9:CH2 / A10:CH2 / A11:CH4                */
  93.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
  94.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  95.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  96.   GPIO_Init(GPIOA, &GPIO_InitStructure);

  97. /*LED显示:LED5:PE15 / LED6:PB11 / LED7:PE14 / LED8:PB10         */

  98.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11;
  99.   GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
  100.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  101.   GPIO_Init(GPIOB, &GPIO_InitStructure);
  102.                  GPIO_SetBits(GPIOB,GPIO_Pin_10);
  103.                 GPIO_SetBits(GPIOB,GPIO_Pin_11);
  104.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14|GPIO_Pin_15;
  105.   GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
  106.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  107.   GPIO_Init(GPIOE, &GPIO_InitStructure);
  108.                   GPIO_SetBits(GPIOE,GPIO_Pin_14);
  109.                 GPIO_SetBits(GPIOE,GPIO_Pin_15);
  110.   
  111. /*红外管:infra1-> PC7, infra2-> PC8         浮空输入  */

  112.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 ;
  113.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  114.   GPIO_Init(GPIOC, &GPIO_InitStructure);   
  115. // GPIO_ResetBits(GPIOC,GPIO_Pin_7);
  116. // GPIO_ResetBits(GPIOC,GPIO_Pin_8);

  117. /*光电管:tube1-> PD9, tube2-> PD11, tube3-> PD13, tube4-> PD15        浮空输入*/
  118.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1|GPIO_Pin_2 | GPIO_Pin_3;
  119.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  120.   GPIO_Init(GPIOD, &GPIO_InitStructure);

  121. /*超声波:TX->PB9 */
  122.             GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  123.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  124.           GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                          
  125.           GPIO_Init(GPIOB, &GPIO_InitStructure);
  126.           GPIO_ResetBits( GPIOB, GPIO_Pin_9);

  127.           GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  128.       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;            //PB8接受采集上升沿 PB6低电平
  129.           GPIO_Init(GPIOE, &GPIO_InitStructure);
  130.           GPIO_SetBits(GPIOE,GPIO_Pin_10);

  131. }

  132. void TIM_Configuration(void)
  133. {
  134.         TIM_TimeBaseInitTypeDef  TIM1_TimeBaseStructure;
  135.         TIM_OCInitTypeDef  TIM1_OCInitStructure;
  136.        

  137.           TIM_DeInit(TIM1);

  138.          /* Time Base configuration */
  139.           TIM1_TimeBaseStructure.TIM_Prescaler = 0x0; //设置了用来作为TIMx时钟频率除数的预分频值
  140.         TIM1_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;         //选择了计数器模式
  141.         TIM1_TimeBaseStructure.TIM_Period = 0xFFFF;  //设置了在下一个更新事件装入活动的自动重装载寄存器周期  ARR
  142.         TIM1_TimeBaseStructure.TIM_ClockDivision = 0x0;  //设置了时钟分割
  143.         TIM1_TimeBaseStructure.TIM_RepetitionCounter = 0x0;         //设置了周期计数器值

  144.         TIM_TimeBaseInit(TIM1,&TIM1_TimeBaseStructure);//根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位(5个参数)
  145.                                                                                                         //TIM1基本计数器设置(设置PWM频率) //频率=TIM1_CLK/(ARR+1)

  146.         /* Channel 1, 2,3 and 4 Configuration in PWM mode */
  147.         TIM1_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
  148.         TIM1_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  149.         TIM1_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;                  
  150.         TIM1_OCInitStructure.TIM_Pulse = 0x0;
  151.         TIM1_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
  152.         TIM1_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;                
  153.         TIM1_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
  154.         TIM1_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
  155.           
  156.         TIM_OC1Init(TIM1,&TIM1_OCInitStructure);          //同TimeBaseStructure        (8个参数)        //TIM1_OC1模块设置(设置1通道占空比)
  157.        
  158.         TIM1_OCInitStructure.TIM_Pulse = 0x7fff;
  159.         TIM_OC2Init(TIM1,&TIM1_OCInitStructure);         //同TimeBaseStructure
  160.        
  161.         TIM1_OCInitStructure.TIM_Pulse = 0x0;
  162.         TIM_OC3Init(TIM1,&TIM1_OCInitStructure);         //同TimeBaseStructure
  163.        
  164.         TIM1_OCInitStructure.TIM_Pulse = 0x7fff;
  165.         TIM_OC4Init(TIM1,&TIM1_OCInitStructure);         //同TimeBaseStructure       
  166.        
  167.         TIM_Cmd(TIM1,ENABLE);                  //先设置好了TimeBase、OC、BDTR  使能或者失能TIM1外设

  168.         TIM_CtrlPWMOutputs(TIM1,DISABLE);        //TIM1_CtrlPWMOutputs(ENABLE); 使能或者失能TIM1的主输出

  169. /*超声波  TIM2   TIM3*/       
  170.     TIM_DeInit(TIM2);
  171.         TIM_TimeBaseStructure.TIM_Period=72-1;
  172.         TIM_TimeBaseStructure.TIM_Prescaler=15-1;
  173.         TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
  174.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  175.         TIM_TimeBaseInit(TIM2, & TIM_TimeBaseStructure);
  176.         TIM_ClearFlag(TIM2,TIM_FLAG_Update);
  177.     TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
  178.     TIM_Cmd(TIM2,DISABLE);
  179.        

  180.         TIM_DeInit(TIM3);
  181.         TIM_TimeBaseStructure.TIM_Prescaler =72-1;  //设置了用来作为TIMx时钟频率除数的预分频值
  182.     TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;         //选择了计数器模式
  183.     TIM_TimeBaseStructure.TIM_Period = 20-1;   //设置了15us在下一个更新事件装入活动的自动重装载寄存器周期  ARR
  184.         TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ; //设置了时钟分割
  185.         TIM_TimeBaseInit(TIM3, & TIM_TimeBaseStructure);
  186.         TIM_ClearFlag(TIM3,TIM_FLAG_Update);
  187.     TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
  188.         TIM_Cmd(TIM3,DISABLE);


  189. }

  190. void stop__(void)                //直走速度正常
  191. {
  192.         TIM_SetCompare1(TIM1,0);
  193.         TIM_SetCompare2(TIM1,0);
  194.         TIM_SetCompare3(TIM1,0);
  195.         TIM_SetCompare4(TIM1,0);
  196.         TIM_CtrlPWMOutputs(TIM1,ENABLE);       
  197. }

  198. void zhi(void)                //直走速度正常
  199. {
  200.         TIM_SetCompare1(TIM1,TIM1Compare1[0]);
  201.         TIM_SetCompare2(TIM1,TIM1Compare2[0]);
  202.         TIM_SetCompare3(TIM1,TIM1Compare3[0]);
  203.         TIM_SetCompare4(TIM1,TIM1Compare4[0]);
  204.         TIM_CtrlPWMOutputs(TIM1,ENABLE);       
  205. }

  206. void zhi_fast(void)                //直走速度快
  207. {
  208.         TIM_SetCompare1(TIM1,TIM1Compare1[0]);
  209.         TIM_SetCompare2(TIM1,TIM1Compare2[1]);
  210.         TIM_SetCompare3(TIM1,TIM1Compare3[0]);
  211.         TIM_SetCompare4(TIM1,TIM1Compare4[1]);
  212.         TIM_CtrlPWMOutputs(TIM1,ENABLE);       
  213. }

  214. void zhi_slow(void)                //直走速度慢
  215. {
  216.         TIM_SetCompare1(TIM1,TIM1Compare1[0]);
  217.         TIM_SetCompare2(TIM1,TIM1Compare2[2]);
  218.         TIM_SetCompare3(TIM1,TIM1Compare3[0]);
  219.         TIM_SetCompare4(TIM1,TIM1Compare4[2]);
  220.         TIM_CtrlPWMOutputs(TIM1,ENABLE);       
  221. }

  222. void zhi_wait(void)                //直走_deng
  223. {
  224.         TIM_SetCompare1(TIM1,TIM1Compare1[0]);
  225.         TIM_SetCompare2(TIM1,0x38ff);
  226.         TIM_SetCompare3(TIM1,TIM1Compare3[0]);
  227.         TIM_SetCompare4(TIM1,0x38ff);
  228.         TIM_CtrlPWMOutputs(TIM1,ENABLE);       
  229. }

  230. void zuoxiao(void)                   //左小转
  231. {
  232.         TIM_SetCompare1(TIM1,0);
  233.         TIM_SetCompare2(TIM1,0x0);
  234.         TIM_SetCompare3(TIM1,0);
  235.         TIM_SetCompare4(TIM1,0xdfff);
  236.         TIM_CtrlPWMOutputs(TIM1,ENABLE);       
  237. }

  238. void zuoda(void)                   //左大转
  239. {
  240.         TIM_SetCompare1(TIM1,0);
  241.         TIM_SetCompare2(TIM1,0);
  242.         TIM_SetCompare3(TIM1,0);
  243.         TIM_SetCompare4(TIM1,0xffff);
  244.         TIM_CtrlPWMOutputs(TIM1,ENABLE);       
  245. }

  246. void zuodada(void)
  247. {
  248.         TIM_SetCompare1(TIM1,0x5fff);
  249.         TIM_SetCompare2(TIM1,0);
  250.         TIM_SetCompare3(TIM1,0);
  251.         TIM_SetCompare4(TIM1,0xffff);
  252.         TIM_CtrlPWMOutputs(TIM1,ENABLE);
  253. }

  254. void youxiao(void)                   //右小转
  255. {
  256.         TIM_SetCompare1(TIM1,TIM1Compare1[0]);
  257.         TIM_SetCompare2(TIM1,TIM1Compare2[0]);
  258.         TIM_SetCompare3(TIM1,TIM1Compare3[0]);
  259.         TIM_SetCompare4(TIM1,0x0);
  260.         TIM_CtrlPWMOutputs(TIM1,ENABLE);       
  261. }

  262. void youda(void)                   //右大转
  263. {
  264.         TIM_SetCompare1(TIM1,0);
  265.         TIM_SetCompare2(TIM1,0xffff);
  266.         TIM_SetCompare3(TIM1,0);
  267.         TIM_SetCompare4(TIM1,0);
  268.         TIM_CtrlPWMOutputs(TIM1,ENABLE);       
  269. }
  270. void youdada(void)                   //右大转
  271. {
  272.         TIM_SetCompare1(TIM1,0);
  273.         TIM_SetCompare2(TIM1,0xffff);
  274.         TIM_SetCompare3(TIM1,0x5fff);
  275.         TIM_SetCompare4(TIM1,0);
  276.         TIM_CtrlPWMOutputs(TIM1,ENABLE);       
  277. }

  278. void xunji_dan(void)
  279. {               
  280.         if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_13)==1)
  281.         {
  282.                 delay_us(500);
  283.                 if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_13)==1)
  284.                 {
  285.                         tubecnt++;
  286.                         if(tubecnt==1)
  287.                         {
  288.                                 zhi();delay_ms(150);
  289.                         }
  290.                         if(tubecnt==2||tubecnt==3||tubecnt==4)
  291.                         {
  292.                                         zhi();
  293.                                         delay_ms(650);
  294.                                         zuodada();
  295.                                         delay_ms(250);
  296.                         }
  297.                         if(tubecnt==5)
  298.                         {
  299.                                         zhi();
  300.                                         delay_ms(650);
  301.                                         zuodada();
  302.                                         delay_ms(300);
  303.                                         tubecnt=0;
  304.                         }               
  305.                         }
  306.                 return;
  307.                 }
  308.         if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7)==0&&GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_9)==0)
  309.         {zhi();return;}
  310.         if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7)==1&&GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_9)==1)
  311.         {zhi();return;}
  312.         if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7)==1)
  313.         {youda();return;}       
  314.         if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_9)==1)
  315.         { zuoda();return;}
  316.                                
  317. }

  318. void xunji_qian(void)                           //循迹
  319. {
  320.         if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_13)==1)
  321.         {
  322.                 delay_us(500);
  323.                 if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_13)==1)
  324.                 {
  325.                         tubecnt++;
  326.                         if(tubecnt==1)
  327.                         {
  328.                                 zhi();delay_ms(150);
  329.                         }
  330.                         if(tubecnt==2||tubecnt==3)
  331.                         {
  332.                                         zhi();
  333.                                         delay_ms(400);
  334.                                         zuodada();
  335.                                         delay_ms(270);
  336.                         }
  337.                         if(tubecnt==4)
  338.                         {
  339.                                
  340.                                          zhi();
  341.                                         delay_ms(580);
  342.                                         zuodada();
  343.                                         delay_ms(360);
  344.                                         zhi();delay_ms(600);
  345.                                         zhi_slow();        /*delay_ms(65535);
  346.                                         zhi_slow(); delay_ms(65535);
  347.                                         zhi_slow(); delay_ms(20000);*/
  348.                                         while(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9)==1);
  349.                                         delay_ms(10);
  350.                                         zhi();delay_ms(100);                                       
  351.                         }
  352.                         if(tubecnt==5)
  353.                         {
  354.                                         zhi();
  355.                                         delay_ms(350);
  356.                                         zuoda();
  357.                                         delay_ms(800);
  358.                                         tubecnt=0;
  359.                                         flag=0;
  360.                         }               
  361.                         }
  362.                 return;
  363.                 }
  364.         if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7)==0&&GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_9)==0)
  365.         {zhi();return;}
  366.         if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7)==1&&GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_9)==1)
  367.         {zhi();return;}
  368.         if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7)==1)
  369.         {youxiao();return;}       
  370.         if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_9)==1)
  371.         { zuoxiao();return;}                       
  372. }

  373. void xunji_hou(void)                           //循迹
  374. {       
  375.         if(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9)==0)
  376.         {
  377.                 stop__();
  378.                 while(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9)==0);
  379.         }        
  380.         if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_13)==1)
  381.         {
  382.                 delay_us(500);
  383.                 if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_13)==1)
  384.                 {
  385.                         tubecnt++;
  386.                         if(tubecnt==1)
  387.                         {
  388.                                 zhi();delay_ms(150);
  389.                         }
  390.                         if(tubecnt==2||tubecnt==3)
  391.                         {
  392.                                         zhi();
  393.                                         delay_ms(500);
  394.                                         zuodada();
  395.                                         delay_ms(300);
  396.                         }
  397.                         if(tubecnt==4)
  398.                         {
  399.                                         zhi();delay_ms(430);
  400.                                 //        while((GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_9)==0||GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7)==0))
  401.                                         zuodada();delay_ms(240);
  402.                                         zhi();delay_ms(360);
  403.                                         while(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_9)==0);
  404.                                         zuodada();delay_ms(300);
  405.                                         zhi();delay_ms(800);
  406.                                         while(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7)==0);
  407.                                         youdada();delay_ms(360);
  408.                                         zhi();delay_ms(800);
  409. ……………………

  410. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
STM32_小车_乙_Last.rar (214.1 KB, 下载次数: 257)


评分

参与人数 2黑币 +10 收起 理由
程渭东 + 5 赞一个!
夜斗 + 5 很给力!

查看全部评分

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

使用道具 举报

沙发
only墨麟 发表于 2017-9-27 23:04 | 只看该作者
谢谢啦,刚好缺少这个
回复

使用道具 举报

板凳
only墨麟 发表于 2017-9-27 23:05 | 只看该作者
谢谢啦,刚好缺少这个
回复

使用道具 举报

地板
1879397372 发表于 2017-11-20 20:01 | 只看该作者
黑币不够~~~~
回复

使用道具 举报

5#
yuexudong 发表于 2017-11-22 21:30 | 只看该作者
太棒了
回复

使用道具 举报

6#
wyt1456178707 发表于 2017-12-1 00:08 | 只看该作者
我用的是stm32f103vet6  keil5  ST-link,要怎么 修改 我是新手  求大神指点
回复

使用道具 举报

7#
jiange666 发表于 2017-12-21 11:23 | 只看该作者
找到想要的了,谢谢楼主
回复

使用道具 举报

8#
333333331 发表于 2018-3-7 08:27 | 只看该作者
楼主,请问这个程序适合用神州2号开发板吗
回复

使用道具 举报

9#
abc729003380 发表于 2018-4-11 22:08 | 只看该作者
黑币不够
回复

使用道具 举报

10#
abc729003380 发表于 2018-4-12 18:48 | 只看该作者
黑币不够了
回复

使用道具 举报

11#
))@:: 发表于 2018-5-2 23:27 来自手机 | 只看该作者
哇哇,想要这个丫丫丫
回复

使用道具 举报

12#
dazuo0845 发表于 2018-5-28 20:22 | 只看该作者
感谢分享
回复

使用道具 举报

13#
1005045175 发表于 2018-6-6 20:36 | 只看该作者
哇哇哇谢谢楼主
回复

使用道具 举报

14#
吉布森 发表于 2018-7-17 15:06 | 只看该作者
楼主厉害
回复

使用道具 举报

15#
joindp 发表于 2018-10-5 17:54 | 只看该作者
很给力
回复

使用道具 举报

16#
szyinbo 发表于 2018-10-7 07:56 | 只看该作者
感谢分享
回复

使用道具 举报

17#
137434741 发表于 2018-10-10 14:01 | 只看该作者
赞一个,超给力,正好借鉴一下
回复

使用道具 举报

18#
不懂装懂 发表于 2018-10-22 20:27 | 只看该作者
厉害啊,大神求带
回复

使用道具 举报

19#
TT3721 发表于 2018-11-23 09:50 | 只看该作者
正好缺这个程序
回复

使用道具 举报

20#
乌木喉 发表于 2018-11-27 18:19 来自手机 | 只看该作者
请问下载之后是需要按顺序烧进单片机吗,第一次做这个东西,不太懂,求大佬
回复

使用道具 举报

21#
xqiang 发表于 2018-12-18 16:38 | 只看该作者
谢谢啦,刚好缺少这个
回复

使用道具 举报

22#
qipverome 发表于 2018-12-19 20:04 | 只看该作者
谢谢分享。
回复

使用道具 举报

23#
jetty-9 发表于 2018-12-26 19:01 | 只看该作者
盗别人的有意思?
回复

使用道具 举报

24#
yahuiwang 发表于 2019-1-8 10:07 | 只看该作者
真心的不错,,,,,谢谢分享
回复

使用道具 举报

25#
hbpu 发表于 2019-1-10 20:25 | 只看该作者
感觉挺有用的
回复

使用道具 举报

26#
ikon路 发表于 2019-1-14 10:49 | 只看该作者
我要下载啊啊啊啊啊。。。。
回复

使用道具 举报

27#
帝无心223 发表于 2019-2-16 22:19 | 只看该作者
赞一个
回复

使用道具 举报

28#
1907436340 发表于 2019-3-11 20:02 | 只看该作者
给力 赞
回复

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机. 联系QQ:125739409;技术交流QQ群582644647

Powered by 单片机教程网

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