找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STM32F103C8T6电磁炮源程序

[复制链接]
跳转到指定楼层
楼主
  因为一直想整电磁炮吗,然后苦于找不到历程,然后自己扒了好久,才整理出来的
做的时候一定要小心,因为小电容电压较小,打不出来,然后我买的22000uf 50V(电容一定看好正负极)

一定看好我的原理图,一定要看好,
我加了舵机,和小车,同样可以蓝牙遥控,等我整理完了过段时间就会发出来
到时候我会把他打成pcb板,等调好以后就发出来

电路原理图如下:


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. 可以通过蓝牙或着按键控制发射
  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发送
  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; //波特率和 发射的设备约定好
  35.         USART_jiiijef.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//硬件流 这里设置为不使用
  36.         USART_jiiijef.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;//发送和接收使能  这里两个都使能
  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发送出去
  63.          }
  64.         
  65. }

  66.          
  67. int main()
  68. {

  69.   
  70.   vu8 key=0;
  71.   Motor_12_Config();
  72.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断函数  设置响应优先级为2
  73.         delay_init();                     //延时函数初始化         
  74.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级

  75.   jidian_init();
  76.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断函数  设置响应优先级为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, 下载次数: 49)

评分

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

查看全部评分

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

使用道具 举报

沙发
ID:856585 发表于 2021-6-18 15:21 | 只看该作者
一定不要着急整,看明白那个原理图,先把继电器调好,加油
回复

使用道具 举报

板凳
ID:930465 发表于 2021-10-23 12:47 | 只看该作者
你好,有proteus仿真图吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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