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

QQ登錄

只需一步,快速開始

搜索
查看: 3811|回復(fù): 4
收起左側(cè)

藍(lán)牙控制舵機(jī) STM32源程序

  [復(fù)制鏈接]
ID:664329 發(fā)表于 2020-11-9 21:15 | 顯示全部樓層 |閱讀模式
藍(lán)牙控制舵機(jī),使舵機(jī)旋轉(zhuǎn)45度,延時(shí)一段時(shí)間,回轉(zhuǎn)45度,藍(lán)牙發(fā)送信號(hào)“0”,可以使舵機(jī)運(yùn)轉(zhuǎn)

單片機(jī)源程序如下:
  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;                 //設(shè)置重裝數(shù)值, 72MHZ時(shí)
  24.         SysTick->CTRL=0X01;                 //使能,減到零是無(wú)動(dòng)作,采用外部時(shí)鐘源
  25.         SysTick->VAL=0;                            //清零計(jì)數(shù)器
  26.         do
  27.         {
  28.                 temp=SysTick->CTRL;                   //讀取當(dāng)前倒計(jì)數(shù)值
  29.         }
  30.         while((temp&0x01)&&(!(temp&(1<<16))));         //等待時(shí)間到達(dá)
  31.         SysTick->CTRL=0;        //關(guān)閉計(jì)數(shù)器
  32.         SysTick->VAL=0;                //清空計(jì)數(shù)器
  33. }

  34. void delayms(u32 i)
  35. {
  36.         u32 temp;
  37.         SysTick->LOAD=9000*i;          //設(shè)置重裝數(shù)值, 72MHZ時(shí)
  38.         SysTick->CTRL=0X01;                //使能,減到零是無(wú)動(dòng)作,采用外部時(shí)鐘源
  39.         SysTick->VAL=0;                        //清零計(jì)數(shù)器
  40.         do
  41.         {
  42.                 temp=SysTick->CTRL;           //讀取當(dāng)前倒計(jì)數(shù)值
  43.         }
  44.         while((temp&0x01)&&(!(temp&(1<<16))));        //等待時(shí)間到達(dá)
  45.         SysTick->CTRL=0;        //關(guān)閉計(jì)數(shù)器
  46.         SysTick->VAL=0;                //清空計(jì)數(shù)器
  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();            //延時(shí)函數(shù)初始化          
  71.                                  
  72.          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//usart3接收中斷優(yōu)先級(jí)2 次優(yōu)先級(jí)2
  73.          usart3_init(9600);//藍(lán)牙的串口初始化 注意手機(jī)與單片機(jī)的藍(lán)牙連接波特率是要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. }
復(fù)制代碼

所有資料51hei提供下載:
藍(lán)牙控制舵機(jī).7z (184.51 KB, 下載次數(shù): 67)


回復(fù)

使用道具 舉報(bào)

ID:641421 發(fā)表于 2021-3-6 15:31 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

ID:899881 發(fā)表于 2021-4-2 10:47 | 顯示全部樓層
systeminit函數(shù)是什么
回復(fù)

使用道具 舉報(bào)

ID:664329 發(fā)表于 2021-7-21 16:22 | 顯示全部樓層

STM32時(shí)鐘初始化函數(shù)
回復(fù)

使用道具 舉報(bào)

ID:956087 發(fā)表于 2021-7-24 16:04 | 顯示全部樓層

是STM32時(shí)鐘初始化函數(shù)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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