久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32控制步進電機源代碼

[復制鏈接]
ID:427336 發表于 2018-11-15 21:08 | 顯示全部樓層 |閱讀模式
大家想學步進電機用stm32控制步進電機可以借鑒下啊

無標題.png

單片機源程序如下:
  1. #include "stm32f10x.h"
  2. #include "stm32f10x_rcc.h"
  3. #include "misc.h"

  4. void RCC_Configuration(void);
  5. void GPIO_Configuration(void);
  6. void ZhengZhuan(u16 tt);
  7. void FanZhuan(u16 tt);
  8. void delay_ms(u16 nms);

  9. /****************************************************************************
  10. * 名    稱:int main(void)
  11. * 功    能:主函數
  12. * 入口參數:無
  13. * 出口參數:無
  14. * 說    明:
  15. * 調用方法:無
  16. ****************************************************************************/
  17. int main(void)
  18. {
  19.   RCC_Configuration();        //系統時鐘設置及外設時鐘使能                  
  20.   GPIO_Configuration();

  21.   while (1)
  22.   {       
  23.           //讀取PC5管腳的輸入狀態         K1  
  24.         if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_5) == Bit_RESET)
  25.         {
  26.                 ZhengZhuan(5);//高速
  27.         }

  28.         //讀取PC5管腳的輸入狀態           K2
  29.         if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_1) == Bit_RESET)
  30.         {
  31.                 FanZhuan(5);//高速
  32.         }       

  33.         //讀取PC2管腳的輸入狀態            K3
  34.         if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_2) == Bit_RESET)
  35.         {
  36.                 ZhengZhuan(10);//低速
  37.         }

  38.         //讀取PC3管腳的輸入狀態            K4
  39.         if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_3) == Bit_RESET)
  40.         {
  41.                 FanZhuan(10);//低速
  42.         }

  43.           GPIO_ResetBits(GPIOD, GPIO_Pin_3);
  44.           GPIO_ResetBits(GPIOD, GPIO_Pin_6);
  45.           GPIO_ResetBits(GPIOD, GPIO_Pin_12);
  46.           GPIO_ResetBits(GPIOE, GPIO_Pin_4);
  47.   }
  48. }

  49. /****************************************************************************
  50. * 名    稱:void RCC_Configuration(void)
  51. * 功    能:系統時鐘配置為72MHZ, 外設時鐘配置
  52. * 入口參數:無
  53. * 出口參數:無
  54. * 說    明:
  55. * 調用方法:無
  56. ****************************************************************************/
  57. void RCC_Configuration(void)
  58. {
  59.   SystemInit();
  60.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE , ENABLE);
  61. }

  62. /****************************************************************************
  63. * 名    稱:void GPIO_Configuration(void)
  64. * 功    能:LED控制口線及鍵盤設置
  65. * 入口參數:無
  66. * 出口參數:無
  67. * 說    明:
  68. * 調用方法:無
  69. ****************************************************************************/
  70. void GPIO_Configuration(void)
  71. {
  72.   GPIO_InitTypeDef GPIO_InitStructure;                                //端口配置結構體

  73.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;                        //PD3管腳
  74.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //推挽輸出
  75.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //口線翻轉速度為50MHz
  76.   GPIO_Init(GPIOD, &GPIO_InitStructure);                        //初始化端口       

  77.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;                        //PD6管腳
  78.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //推挽輸出
  79.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //口線翻轉速度為50MHz
  80.   GPIO_Init(GPIOD, &GPIO_InitStructure);                        //初始化端口       

  81.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;                //PD12管腳
  82.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //推挽輸出
  83.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //口線翻轉速度為50MHz
  84.   GPIO_Init(GPIOD, &GPIO_InitStructure);                        //初始化端口       

  85.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;                        //PE4管腳
  86.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //推挽輸出
  87.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //口線翻轉速度為50MHz
  88.   GPIO_Init(GPIOE, &GPIO_InitStructure);                        //初始化端口       


  89.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                        //PC5管腳
  90.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                //輸入上拉
  91.   GPIO_Init(GPIOC, &GPIO_InitStructure);                        //初始化端口

  92.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;                        //PC1管腳
  93.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                //輸入上拉
  94.   GPIO_Init(GPIOC, &GPIO_InitStructure);                        //初始化端口

  95.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;                        //PC2管腳
  96.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                //輸入上拉
  97.   GPIO_Init(GPIOC, &GPIO_InitStructure);                        //初始化端口

  98.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;                        //PC3管腳
  99.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                //輸入上拉
  100.   GPIO_Init(GPIOC, &GPIO_InitStructure);                        //初始化端口
  101. }
  102. //電機正轉函數
  103. void ZhengZhuan(u16 tt)
  104. {
  105.             //1100
  106.           GPIO_SetBits(GPIOD, GPIO_Pin_3);
  107.           GPIO_SetBits(GPIOD, GPIO_Pin_6);
  108.           GPIO_ResetBits(GPIOD, GPIO_Pin_12);
  109.           GPIO_ResetBits(GPIOE, GPIO_Pin_4);
  110.           delay_ms(tt);
  111.           //0110  
  112.           GPIO_ResetBits(GPIOD, GPIO_Pin_3);
  113.           GPIO_SetBits(GPIOD, GPIO_Pin_6);
  114.           GPIO_SetBits(GPIOD, GPIO_Pin_12);
  115.           GPIO_ResetBits(GPIOE, GPIO_Pin_4);
  116.           delay_ms(tt);
  117.           //0011
  118.           GPIO_ResetBits(GPIOD, GPIO_Pin_3);
  119.           GPIO_ResetBits(GPIOD, GPIO_Pin_6);
  120.           GPIO_SetBits(GPIOD, GPIO_Pin_12);
  121.           GPIO_SetBits(GPIOE, GPIO_Pin_4);
  122.           delay_ms(tt);
  123.           //1001          
  124.           GPIO_SetBits(GPIOD, GPIO_Pin_3);
  125.           GPIO_ResetBits(GPIOD, GPIO_Pin_6);
  126.           GPIO_ResetBits(GPIOD, GPIO_Pin_12);
  127.           GPIO_SetBits(GPIOE, GPIO_Pin_4);
  128.           delay_ms(tt);
  129. }
  130. //電機反轉函數
  131. void FanZhuan(u16 tt)
  132. {
  133.           //1001          
  134.           GPIO_SetBits(GPIOD, GPIO_Pin_3);
  135.           GPIO_ResetBits(GPIOD, GPIO_Pin_6);
  136.           GPIO_ResetBits(GPIOD, GPIO_Pin_12);
  137.           GPIO_SetBits(GPIOE, GPIO_Pin_4);
  138.           delay_ms(tt);
  139.           //0011
  140.           GPIO_ResetBits(GPIOD, GPIO_Pin_3);
  141.           GPIO_ResetBits(GPIOD, GPIO_Pin_6);
  142.           GPIO_SetBits(GPIOD, GPIO_Pin_12);
  143.           GPIO_SetBits(GPIOE, GPIO_Pin_4);
  144.           delay_ms(tt);          
  145.           //0110
  146.           GPIO_ResetBits(GPIOD, GPIO_Pin_3);
  147.           GPIO_SetBits(GPIOD, GPIO_Pin_6);
  148.           GPIO_SetBits(GPIOD, GPIO_Pin_12);
  149.           GPIO_ResetBits(GPIOE, GPIO_Pin_4);
  150.           delay_ms(tt);
  151.           //1100
  152.           GPIO_SetBits(GPIOD, GPIO_Pin_3);
  153.           GPIO_SetBits(GPIOD, GPIO_Pin_6);
  154.           GPIO_ResetBits(GPIOD, GPIO_Pin_12);
  155.           GPIO_ResetBits(GPIOE, GPIO_Pin_4);
  156.           delay_ms(tt);          
  157. }

  158. void delay_ms(u16 nms)
  159. {
  160.          u32 temp;
  161.          SysTick->LOAD = 9000*nms;
  162.          SysTick->VAL=0X00;//清空計數器
  163.          SysTick->CTRL=0X01;//使能,減到零是無動作,采用外部時鐘源
  164.          do
  165.          {
  166.           temp=SysTick->CTRL;//讀取當前倒計數值
  167.          }while((temp&0x01)&&(!(temp&(1<<16))));//等待時間到達
  168.          SysTick->CTRL=0x00; //關閉計數器
  169.          SysTick->VAL =0X00; //清空計數器
  170. }
復制代碼

所有資料51hei提供下載:
程序.rar (270.59 KB, 下載次數: 107)
回復

使用道具 舉報

ID:774108 發表于 2020-7-3 10:22 來自手機 | 顯示全部樓層
怎么接線的
回復

使用道具 舉報

ID:799384 發表于 2020-7-11 17:23 | 顯示全部樓層
按程序燒錄電機怎么不轉呢,已經共地,接線應該也正確
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品免费看 | 免费在线视频一区二区 | 91精品一区二区三区久久久久久 | 精品一区国产 | 久久久久久成人网 | 国产精品日女人 | 国产中文字幕在线观看 | 日韩欧美在线免费观看 | 国产日屁 | 久久性色| 色婷婷综合在线观看 | 国产一区| 国户精品久久久久久久久久久不卡 | 欧美日韩国产高清视频 | 最新国产精品精品视频 | 亚洲成人精品一区 | 欧美一区二区在线 | 久久国产欧美日韩精品 | 自拍视频网站 | 国产精品美女久久久 | 在线视频中文字幕 | 欧洲色| 91精品久久久久久久久中文字幕 | 日韩成人在线播放 | 欧美激情一区 | 欧美性久久 | 中文字幕国产 | 18gay男同69亚洲网站 | 精品国产18久久久久久二百 | 国产黑丝av| 欧美a区 | 免费久久精品视频 | 国产精品激情小视频 | av片在线观看网站 | 亚洲国产午夜 | 国产高清久久 | 欧美中文视频 | 欧美精品一区在线 | 国产乱码精品一品二品 | 国产极品车模吞精高潮呻吟 | 成人影 |