找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4309|回復: 2
收起左側

STM32F103C8T6電磁炮源程序

[復制鏈接]
ID:856585 發(fā)表于 2021-6-18 15:19 | 顯示全部樓層 |閱讀模式
  因為一直想整電磁炮嗎,然后苦于找不到歷程,然后自己扒了好久,才整理出來的
做的時候一定要小心,因為小電容電壓較小,打不出來,然后我買的22000uf 50V(電容一定看好正負極)

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

電路原理圖如下:

原理圖

原理圖


5v升50模塊

5v升50模塊

5v升50模塊

繼電器

繼電器


單片機源程序如下:
  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. 可以通過藍牙或著按鍵控制發(fā)射
  10. 繼電器1 PB0;繼電器2 PB1;
  11. 藍牙 TX PA9;RX PA10;

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




  13.         static u16 res='0'; //定義了一個變量
  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;//復用推挽輸出
  24.          GPIO_aioegfh.GPIO_Pin=GPIO_Pin_9;//TX發(fā)送
  25.    GPIO_aioegfh.GPIO_Speed=GPIO_Speed_50MHz;
  26.    GPIO_Init(GPIOA,&GPIO_aioegfh);                        //串口時鐘使能  GPIO時鐘使能
  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ā)射的設備約定好
  35.         USART_jiiijef.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//硬件流 這里設置為不使用
  36.         USART_jiiijef.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;//發(fā)送和接收使能  這里兩個都使能
  37.         USART_jiiijef.USART_Parity=USART_Parity_No;//奇偶校驗 通信雙方要么都有  要么都沒有奇偶校驗
  38.         USART_jiiijef.USART_StopBits=USART_StopBits_1; //停止位 設置為1
  39.         USART_jiiijef.USART_WordLength=USART_WordLength_8b;//字長設置為8  因為沒有奇偶校驗
  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ù)  設置響應優(yōu)先級為2
  73.         delay_init();                     //延時函數(shù)初始化         
  74.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應優(yōu)先級

  75.   jidian_init();
  76.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷函數(shù)  設置響應優(yōu)先級為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. }
復制代碼

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

評分

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

查看全部評分

回復

使用道具 舉報

ID:856585 發(fā)表于 2021-6-18 15:21 | 顯示全部樓層
一定不要著急整,看明白那個原理圖,先把繼電器調(diào)好,加油
回復

使用道具 舉報

ID:930465 發(fā)表于 2021-10-23 12:47 | 顯示全部樓層
你好,有proteus仿真圖嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

快速回復 返回頂部 返回列表