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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stm32單片機57步進電機測試程序 可控制pwm頻率

[復制鏈接]
ID:198628 發表于 2017-5-9 14:44 | 顯示全部樓層 |閱讀模式

0.png

stm32單片機源程序:
  1. /************************************************************
  2. ************************************************************/
  3. #include "bsp_TB6600_TIM.h"
  4. #include "stm32f10x.h"
  5. #include "stm32f10x_usart.h"
  6. #include <stdio.h>

  7. char RX=0;
  8. extern __IO uint16_t prescaler;//這個參數控制pwm頻率
  9. /////////////////////////串口函數///////////////////////////////
  10. void Printf_Configuration(void);
  11. void Usart_GPIO_Configuration(void);
  12. ////////////////////////////////////////////////////////////////
  13. void RCC_Configuration(void);
  14. void Limit(uint16_t F);//速度限制
  15. ////////////////////////////////////////////////////////////////
  16. //////////////////////printf函數////////////////////////////////
  17. int fputc(int ch,FILE*f)
  18. {
  19.         while(USART_GetFlagStatus( USART1,  USART_FLAG_TC)==RESET);//等待發送完畢
  20.         USART_SendData(USART1,ch);//將ch送給usart1
  21.         return(ch);//返回ch
  22. }
  23. //因為printf()之類的函數,使用了半主機模式。使用標準庫會導致程序無法運行。有兩種解決方法
  24. //1.使用微庫。魔術棒——Target——Code Generation選擇使用Use MicroLIB
  25. //2.添加如下程序代碼
  26. struct __FILE
  27. {
  28. int handle;
  29. /* Whatever you require here. If the only file you are using is */
  30. /* standard output using printf() for debugging, no file handling */
  31. /* is required. */
  32. };
  33. FILE __stdout; // FILE is typedefed in stdio.h.
  34. ///////////////////////////////////////////////////////////////////
  35. ///////////////////////////////////////////////////////////////////


  36. int main(void)
  37. {
  38.         RCC_Configuration();
  39.         TB6600_TIMx_PWM_Init();
  40.         Usart_GPIO_Configuration();
  41.         Printf_Configuration();
  42.         printf("start");
  43.         while(1)       //必須有while(1)否側程序就會跑飛
  44.         {
  45.                 while(USART_GetFlagStatus( USART1,  USART_FLAG_RXNE)==RESET);
  46.                 RX=USART_ReceiveData(USART1);
  47.                 if(RX=='Z')//原速300r/s
  48.                 {
  49.                         prescaler=125;
  50.                         printf("speed:300r/s\n\r");
  51.                 }
  52.                 if(RX=='A')//加速600r/s
  53.                 {
  54.                         prescaler=62;
  55.                         printf("speed:600/s\n\r");
  56.                 }
  57.                 if(RX=='E')//減速150r/s
  58.                 {
  59.                         prescaler=250;
  60.                         printf("speed:150/s\n\r");
  61.                 }
  62.         }
  63. }

  64. void RCC_Configuration(void)
  65. {
  66.   RCC_DeInit();   //初始化缺省值
  67.   RCC_HSEConfig(RCC_HSE_ON);//使能外部高速時鐘
  68.   while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);
  69.         FLASH_SetLatency(FLASH_Latency_2);
  70.   FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
  71.         RCC_HCLKConfig(RCC_SYSCLK_Div1);   //HCLK=SYSCLK
  72.         RCC_PCLK2Config(RCC_HCLK_Div1);    //PCLK2=HCLK
  73.         RCC_PCLK1Config(RCC_HCLK_Div2);    //PCLK1=HCLK/2
  74.         RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
  75.         RCC_PLLCmd(ENABLE);
  76.         while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){};
  77.   /* Select PLL as system clock source */
  78.   RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
  79.   /* Wait till PLL is used as system clock source */
  80.   while(RCC_GetSYSCLKSource()!= 0x08);
  81.   /* Enable GPIOB, GPIOC and AFIO clocks */
  82.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE);
  83.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE);       
  84. }

  85. void Usart_GPIO_Configuration(void)
  86. {
  87.   GPIO_InitTypeDef GPIO_InitStructure;

  88.   /* Configure USARTX_TX as alternate function push-pull */
  89.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_9;
  90.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  91.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  92.   GPIO_Init(GPIOA, &GPIO_InitStructure);
  93.   /* Configure USARTX_RX as input floating */
  94.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_10;
  95.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  96.   GPIO_Init(GPIOA, &GPIO_InitStructure);
  97.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOA, ENABLE);       
  98. }

  99. void Printf_Configuration(void)
  100. {
  101.         USART_InitTypeDef USART_InitStructure;
  102.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 , ENABLE);
  103.   USART_InitStructure.USART_BaudRate = 9600;
  104.   USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  105.   USART_InitStructure.USART_StopBits = USART_StopBits_1;
  106.   USART_InitStructure.USART_Parity = USART_Parity_No;
  107.   USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  108.   USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  109.   USART_Init(USART1, &USART_InitStructure);
  110.   USART_Cmd(USART1, ENABLE);
  111. }
  112. void USART2_IRQHandler(void)
  113. {
  114.   if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)//判斷中斷來源標志
  115.   {
  116.                 USART_ClearFlag(USART2,USART_IT_RXNE);//清除中斷標志
  117.                 while(USART_GetFlagStatus( USART2,USART_FLAG_RXNE)==RESET);//判斷接收標志,否則數據會丟失
  118.                


  119. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

完整代碼下載:
57步進電機測試.zip (2.06 MB, 下載次數: 125)


回復

使用道具 舉報

ID:298184 發表于 2018-3-28 10:39 | 顯示全部樓層
這個是帶驅動器的嗎
回復

使用道具 舉報

ID:677805 發表于 2021-5-17 15:53 來自手機 | 顯示全部樓層
如何接線呢?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文成人在线 | 在线一级片 | 99精品久久 | 久久精品国产一区 | 国产在线a | 国产精品久久久久久久久污网站 | 久久久久久久av麻豆果冻 | 久久里面有精品 | av在线伊人 | 一区二区三区国产 | 亚洲福利在线视频 | 日韩中文字幕一区 | 一区二区中文字幕 | 九九综合 | 免费看一区二区三区 | 蜜桃久久 | 日韩在线视频免费观看 | 欧美日韩高清 | 亚洲黄色片免费观看 | 亚洲午夜视频在线观看 | 亚洲午夜精品一区二区三区他趣 | 一区二区免费在线观看 | 国产精品久久久久久久模特 | 网站黄色av| 久久九精品 | 一级欧美| 日韩福利在线 | 婷婷综合色 | 成人av影院 | 992tv人人草 久久精品超碰 | 日本特黄a级高清免费大片 国产精品久久性 | 欧美成人精品 | 爱爱综合网 | 欧美成人免费 | 亚洲精品9999 | 日韩成人av在线 | 国产中文字幕在线 | 在线婷婷 | 一级黄在线观看 | 精品伊人久久 | 国产亚洲一区二区三区 |