找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4163|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

STM32F103C8T6電磁炮源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
  因?yàn)橐恢毕胝姶排趩幔缓罂嘤谡也坏綒v程,然后自己扒了好久,才整理出來(lái)的
做的時(shí)候一定要小心,因?yàn)樾‰娙蓦妷狠^小,打不出來(lái),然后我買的22000uf 50V(電容一定看好正負(fù)極)

一定看好我的原理圖,一定要看好,
我加了舵機(jī),和小車,同樣可以藍(lán)牙遙控,等我整理完了過(guò)段時(shí)間就會(huì)發(fā)出來(lái)
到時(shí)候我會(huì)把他打成pcb板,等調(diào)好以后就發(fā)出來(lái)

電路原理圖如下:


5v升50模塊


單片機(jī)源程序如下:
  1. #include "stm32f10x.h"
  2. #include "sys.h"
  3. #include "delay.h"
  4. #include "time.h"
  5. #include "pwm.h"
  6. #include "jidian.h"//繼電器
  7. #include "anjian.h"//按鍵
  8. /*********************************
  9. 可以通過(guò)藍(lán)牙或著按鍵控制發(fā)射
  10. 繼電器1 PB0;繼電器2 PB1;
  11. 藍(lán)牙 TX PA9;RX PA10;

  12. **********************************/




  13.         static u16 res='0'; //定義了一個(gè)變量
  14.         



  15. void chuankou_Init(void)
  16. {
  17.         GPIO_InitTypeDef GPIO_aioegfh;
  18.         USART_InitTypeDef USART_jiiijef;
  19.         NVIC_InitTypeDef NVIC_JIEISJJ;
  20.         

  21.          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);//串口使能,I/o口使能
  22.          
  23.          GPIO_aioegfh.GPIO_Mode=GPIO_Mode_AF_PP;//復(fù)用推挽輸出
  24.          GPIO_aioegfh.GPIO_Pin=GPIO_Pin_9;//TX發(fā)送
  25.    GPIO_aioegfh.GPIO_Speed=GPIO_Speed_50MHz;
  26.    GPIO_Init(GPIOA,&GPIO_aioegfh);                        //串口時(shí)鐘使能  GPIO時(shí)鐘使能
  27.          
  28.          GPIO_aioegfh.GPIO_Mode=GPIO_Mode_IN_FLOATING;
  29.    GPIO_aioegfh.GPIO_Pin=GPIO_Pin_10;//RX接收
  30.    GPIO_aioegfh.GPIO_Speed=GPIO_Speed_50MHz;
  31.          GPIO_Init(GPIOA,&GPIO_aioegfh);
  32.         
  33.         
  34.   USART_jiiijef.USART_BaudRate=9600; //波特率和 發(fā)射的設(shè)備約定好
  35.         USART_jiiijef.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//硬件流 這里設(shè)置為不使用
  36.         USART_jiiijef.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;//發(fā)送和接收使能  這里兩個(gè)都使能
  37.         USART_jiiijef.USART_Parity=USART_Parity_No;//奇偶校驗(yàn) 通信雙方要么都有  要么都沒(méi)有奇偶校驗(yàn)
  38.         USART_jiiijef.USART_StopBits=USART_StopBits_1; //停止位 設(shè)置為1
  39.         USART_jiiijef.USART_WordLength=USART_WordLength_8b;//字長(zhǎng)設(shè)置為8  因?yàn)闆](méi)有奇偶校驗(yàn)
  40.         
  41.         USART_Init(USART1,&USART_jiiijef); //通信串口初始化(通信串口1  取地址)
  42.         
  43.         
  44.         USART_Cmd(USART1,ENABLE);  //使能串口1
  45.         
  46.         USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);  //開啟接收中斷
  47.         
  48.         NVIC_JIEISJJ.NVIC_IRQChannel=USART1_IRQn;
  49.         NVIC_JIEISJJ.NVIC_IRQChannelCmd=ENABLE;
  50.         NVIC_JIEISJJ.NVIC_IRQChannelPreemptionPriority=2;
  51.         NVIC_JIEISJJ.NVIC_IRQChannelSubPriority=2;
  52.         NVIC_Init(&NVIC_JIEISJJ);
  53.         
  54.          
  55. }

  56.         
  57.          void USART1_IRQHandler(void)
  58. {

  59.          if(USART_GetITStatus(USART1,USART_IT_RXNE))
  60.          {
  61.                 res= USART_ReceiveData(USART1);  //把USART1賦給變量
  62.                  USART_SendData(USART1,res);  //把接收到的值   從USART1發(fā)送出去
  63.          }
  64.         
  65. }

  66.          
  67. int main()
  68. {

  69.   
  70.   vu8 key=0;
  71.   Motor_12_Config();
  72.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷函數(shù)  設(shè)置響應(yīng)優(yōu)先級(jí)為2
  73.         delay_init();                     //延時(shí)函數(shù)初始化         
  74.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)

  75.   jidian_init();
  76.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷函數(shù)  設(shè)置響應(yīng)優(yōu)先級(jí)為2
  77.         chuankou_Init();
  78.         stoprun();
  79.         key_init();
  80.         
  81. while(1){
  82.         
  83.           key=KEY_Scan(0);        //得到鍵值
  84.                    if(key)
  85.                 {                                                   
  86.                         switch(key)
  87.                         {                                 
  88.                                 case KEY1_PRES:ji_dian();break;
  89.                                 case KEY0_PRES:ji_dian1();break;
  90.                         }
  91.                 }else delay_ms(10);   
  92.          switch(res)
  93.                  {
  94.                         case '1':ji_dian();;delay_ms(1000);forward();break;
  95.                         case '2':ji_dian1();;delay_ms(1000);break;
  96.                         
  97.                         
  98.                  }
  99.                 delay_ms(10);
  100.         
  101. }

  102. }
復(fù)制代碼

所有代碼51hei提供下載:
藍(lán)牙電磁炮程序.7z (183.07 KB, 下載次數(shù): 49)

評(píng)分

參與人數(shù) 1黑幣 +70 收起 理由
admin + 70 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:856585 發(fā)表于 2021-6-18 15:21 | 只看該作者
一定不要著急整,看明白那個(gè)原理圖,先把繼電器調(diào)好,加油
回復(fù)

使用道具 舉報(bào)

板凳
ID:930465 發(fā)表于 2021-10-23 12:47 | 只看該作者
你好,有proteus仿真圖嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表