找回密码
 立即注册

QQ登录

只需一步,快速开始

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

蓝牙控制舵机 STM32源程序

  [复制链接]
跳转到指定楼层
楼主
ID:664329 发表于 2020-11-9 21:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
蓝牙控制舵机,使舵机旋转45度,延时一段时间,回转45度,蓝牙发送信号“0”,可以使舵机运转

单片机源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"

  4. #include "usart3.h"
  5. #include "stm32f10x.h"


  6. void Rcc_init(void)
  7. {
  8.         SystemInit();
  9.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  10.        
  11. }

  12. void GPIO_init(void)
  13. {
  14.         GPIO_InitTypeDef GPIO_InitStructure;
  15.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
  16.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  17.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  18.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  19. }


  20. void delayus(u32 i)
  21. {
  22.         u32 temp;
  23.         SysTick->LOAD=9*i;                 //设置重装数值, 72MHZ时
  24.         SysTick->CTRL=0X01;                 //使能,减到零是无动作,采用外部时钟源
  25.         SysTick->VAL=0;                            //清零计数器
  26.         do
  27.         {
  28.                 temp=SysTick->CTRL;                   //读取当前倒计数值
  29.         }
  30.         while((temp&0x01)&&(!(temp&(1<<16))));         //等待时间到达
  31.         SysTick->CTRL=0;        //关闭计数器
  32.         SysTick->VAL=0;                //清空计数器
  33. }

  34. void delayms(u32 i)
  35. {
  36.         u32 temp;
  37.         SysTick->LOAD=9000*i;          //设置重装数值, 72MHZ时
  38.         SysTick->CTRL=0X01;                //使能,减到零是无动作,采用外部时钟源
  39.         SysTick->VAL=0;                        //清零计数器
  40.         do
  41.         {
  42.                 temp=SysTick->CTRL;           //读取当前倒计数值
  43.         }
  44.         while((temp&0x01)&&(!(temp&(1<<16))));        //等待时间到达
  45.         SysTick->CTRL=0;        //关闭计数器
  46.         SysTick->VAL=0;                //清空计数器
  47. }


  48. void zhuan(u16 speed)
  49. {
  50.         GPIO_SetBits(GPIOB,GPIO_Pin_12);
  51.         delayus(speed);
  52.         GPIO_ResetBits(GPIOB,GPIO_Pin_12);
  53.         delayus(20000-speed);

  54. }


  55. void jiaodu(u16 sec)
  56. {
  57.         u16 i;
  58.         for(i=0;i<sec*10;i++)
  59.         {
  60.        
  61.                 zhuan(1000);
  62.        
  63.         }


  64. }

  65. int main(void)
  66. {       
  67.          int i,a,b;
  68.         Rcc_init();
  69.         GPIO_init();
  70.         delay_init();            //延时函数初始化          
  71.                                  
  72.          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//usart3接收中断优先级2 次优先级2
  73.          usart3_init(9600);//蓝牙的串口初始化 注意手机与单片机的蓝牙连接波特率是要9600
  74.         while(1)
  75.         {
  76.            if(USART3_RX_STA&0x8000)
  77.                  {
  78.                    if(USART3_RX_BUF[0]=='0')
  79.                          {
  80.                           
  81.        
  82.                 for(i=1;i<1250;i+=25)
  83.                 {
  84.                         zhuan(i);
  85.                 }
  86.                         for(a=10000;a>0;a--)
  87.                         for(b=10000;b>0;b--);
  88.                        
  89.                
  90.                 for(i=1250;i>1;i-=25)
  91.                 {
  92.                         zhuan(i);
  93.                         //delayms(10000);
  94.                 }
  95.        
  96.                          }
  97.                          USART3_RX_STA=0;
  98.                  }
  99.         }
  100. }
复制代码

所有资料51hei提供下载:
蓝牙控制舵机.7z (184.51 KB, 下载次数: 67)


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

使用道具 举报

沙发
ID:641421 发表于 2021-3-6 15:31 | 只看该作者
好资料,51黑有你更精彩!!!
回复

使用道具 举报

板凳
ID:899881 发表于 2021-4-2 10:47 | 只看该作者
systeminit函数是什么
回复

使用道具 举报

地板
ID:664329 发表于 2021-7-21 16:22 | 只看该作者
春风十里00 发表于 2021-4-2 10:47
systeminit函数是什么

STM32时钟初始化函数
回复

使用道具 举报

5#
ID:956087 发表于 2021-7-24 16:04 | 只看该作者
春风十里00 发表于 2021-4-2 10:47
systeminit函数是什么

是STM32时钟初始化函数
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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