找回密码
 立即注册

QQ登录

只需一步,快速开始

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

stm32工程模板 -机械臂

[复制链接]
跳转到指定楼层
楼主


主程序:
  1. # include "stm32f10x.h"
  2. # include "stm32f10x_tim.h"
  3. #include <stm32f10x_gpio.h>
  4. #include <key.h>
  5. #include <delay.h>
  6. #include <TIM.h>
  7. #include <5110.h>
  8. #include <dht11.h>
  9. #include <SYS.h>
  10. #include <led.h>
  11. #include <yab.h>
  12. //初始化IO端口
  13. void GPIO_Configuart(void)   
  14. {
  15.     GPIO_InitTypeDef GPIO_InitStructure;
  16.     GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|
  17.                                       GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|
  18.                                       GPIO_Pin_3|GPIO_Pin_10|GPIO_Pin_11;
  19.     GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  20.     GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
  21.     GPIO_Init(GPIOB,&GPIO_InitStructure);
  22.        
  23.           GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_15;
  24.     GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  25.     GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
  26.     GPIO_Init(GPIOA,&GPIO_InitStructure);
  27. }
  28. //复位和系统时钟控制
  29. void RCC_Configuare(void)
  30. {
  31.     SystemInit();
  32.           RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开端口A时钟
  33.           RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//开端口B时钟
  34.           RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG,ENABLE);//使能PG端口时钟
  35.           RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//使能或者失能 APB1 外设时钟
  36.     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);//使能或者失能 APB1 外设时钟
  37.           RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);//使能或者失能 APB1 外设时钟               
  38.                 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
  39.           
  40. }
  41. void chuanganqi(void)
  42. {
  43.                             u8 temp;
  44.                             u8 humi;
  45.                           while(DHT11_Init())     //DHT11初始化     

  46.        {  

  47.                         led(1);
  48.                         LCD_WriteString_en(0,0,"----------");       
  49.       LCD_WriteString_en(0,1,"----------");                                 
  50.                                 }
  51.                         led(2);                                
  52.                         LCD_Clear();       
  53.                         delay_ms(1000);
  54.                         LCD_WriteString_en(0,0,"temp:");       
  55.                         LCD_WriteString_en(1,1,"humi:");
  56.                         LCD_WriteString_en(43,0,"*");       
  57.                         LCD_WriteString_en(43,1,"%");       
  58.                         DHT11_Read_Data(&temp,&humi);//读取温湿度         
  59.                         LCD_WriteNumber(30,0,temp);       
  60.                         LCD_WriteNumber(30,1,humi);
  61.                                 delay_ms(1000);



  62. }
  63. int main(void)
  64. {  
  65.        
  66.               LCD_Configuart();//显示屏初始化
  67.               LED_Configuare();//闪光灯初始化
  68.                                 RCC_Configuare();
  69.                                 GPIO_Configuart();
  70.                                 TIM2_Configuare();
  71.                                 TIM3_Configuare();
  72.                                 TIM4_Configuare();       
  73.         robot_ready();
  74.                                 LCD_Init(); LCD_Clear();
  75.     robot_key();
  76.                         while(1) {               
  77. unsigned int i;               
  78. {
  79.         delay_us(500);
  80.               if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_8)==0) {i=1;}
  81. else          if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_9)==0) {i=2;}
  82. else                if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_10)==0){i=3;}
  83. else                if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_11)==0){i=4;}
  84. else                if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_12)==0){i=5;}
  85. else                if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_13)==0){i=6;}
  86. else                if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_14)==0){i=7;}
  87. else                if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_15)==0){i=8;}
  88. else   { i=1;}

  89. switch(i)
  90. {
  91. case 1:{
  92. ////////////////////
  93. //模式1

  94.                 led(2);
  95.                         LCD_WriteString_en(1,4,"1");
  96.                         robot_ready();       
  97.                         chuanganqi();
  98.                         led(3);

  99. break;}       
  100. case 2:{
  101. ////////////////////

  102. //模式2               
  103.   led(2);       
  104.         LCD_WriteString_en(1,4,"2");
  105.   chuanganqi();        zoulu();zoulu();                        robot_ready();
  106.   led(5);       

  107. ////////////////////                               
  108. break;}
  109. case 3:{
  110. ////////////////////

  111. led(0);
  112. LCD_WriteString_en(1,4,"3");
  113.         zoulu();
  114. robot_ready();       
  115.                 zoulu();
  116. robot_ready();       
  117.                 zoulu();
  118. robot_ready();       
  119.                 zoulu();
  120. robot_ready();       
  121.                 zoulu();
  122. robot_ready();       
  123. led(1);       
  124.        
  125. ////////////////////                                       
  126. break;}
  127. case 4:{
  128. ////////////////////
  129.                         led(1);
  130.                 LCD_WriteString_en(1,4,"4");
  131.                 baidong(0);                baidong(1);        baidong(2);        baidong(3);
  132.                 delay_ms(1000);        robot_ready();
  133.                         baidong(0);                baidong(1);        baidong(2);        baidong(3);
  134.                 delay_ms(1000);
  135.                         shoubiguidong();
  136.                         baidong(0);                baidong(1);        baidong(2);        baidong(3);
  137.                 delay_ms(1000);        robot_ready();
  138.        
  139. ////////////////////       
  140. break;
  141. }
  142. case 5:{
  143. ////////////////////

  144.                         led(2);
  145.                 LCD_WriteString_en(1,4,"5");
  146.                 baobao();
  147.                 robot_ready();       
  148.                 baobao();
  149.                 robot_ready();
  150.        
  151. ////////////////////                                       
  152. break;}       
  153. case 6:{
  154. ////////////////////

  155.                 led(5);
  156.                 LCD_WriteString_en(1,4,"6");
  157.                 shoubiguidong();
  158.                 delay_ms(1000);
  159.                 robot_ready();
  160. ////////////////////                                       
  161. break;}       
  162. case 7:{

  163.                 led(3);
  164.                 LCD_WriteString_en(1,4,"7");
  165.                 shuaitui01();
  166.                 robot_ready();

  167. ////////////////////                                       
  168. break;}       
  169. case 8:{
  170. ////////////////////

  171.                 led(2);
  172.                 LCD_WriteString_en(1,4,"8");
  173.                 shuaitui01();       
  174.                 robot_ready();

  175. ////////////////////                                       
  176. break;}               
  177. }                       
  178. }                               


  179. }       


  180. }
复制代码


stm32工程模板 -机械臂.zip

7.28 MB, 下载次数: 106, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:113502 发表于 2016-5-10 10:01 | 只看该作者
不错谢谢
回复

使用道具 举报

板凳
ID:44441 发表于 2016-5-19 15:51 | 只看该作者
学习下                                          
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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