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

標題: 基于stm32f1的讀取博創CDs5500串口控制電機的協議源碼 [打印本頁]

作者: hi-Slowly    時間: 2018-8-25 12:06
標題: 基于stm32f1的讀取博創CDs5500串口控制電機的協議源碼
基于stm32f1的讀取博創串口控制電機的協議,通過讀取博創控制卡串口發送的數據轉成PWM來控制電機

單片機源程序如下:
  1. /************************GUO NING*******************
  2. 文件名:main.c
  3. 維護人:
  4. 維護日期:
  5. 描述:主函數程序,執行接收到的命令
  6. ****************************************************/
  7. #include "stm32f0xx.h"
  8. #include "userdef.h"
  9. #include "led.h"
  10. #include "motor.h"
  11. #include "cds5500_slave.h"
  12. #include "delay.h"
  13. //#include <stdio.h>

  14. u16 speed_A=0,speed_B=0;

  15. int main(){
  16.         Delay_Init(48);
  17.         LED_Init();
  18. //        LED_ON;
  19. //        delay_ms(500);
  20.         motor_conf();
  21.         CDS_Init();
  22. //        printf("STM32F030F4P6 USART TEST\r\n");
  23. //        LED_OFF;
  24. //        delay_ms(500);

  25.         while(1){
  26. //                printf("%d ok\r\n",CDS5500_data[0].buf[2]);
  27. //                printf("%d ok\r\n",CDS5500_data[0].buf[11]);
  28. //                printf("CDSFrames_D=%d\r\n",CDSFrames_D);
  29. //                printf("CDSFrames_R=%d\r\n",CDSFrames_R);
  30.                 if(CDSFrames_D!=CDSFrames_R){
  31.                         u8 len,i,csum=0;
  32.                         LED_ON;
  33.                         len=CDS5500_data[CDSFrames_D].buf[3];
  34.                         for(i=0;i<len+1;i++)
  35.                         {
  36.                                 csum+=CDS5500_data[CDSFrames_D].buf[2+i];
  37.                         }
  38. //                        printf("%d\r\n",((u8)(~csum)));
  39. //                        printf("%d ok\r\n",CDS5500_data[CDSFrames_D].buf[len+3]);
  40. //                printf("CDS5500_data[0]=");

  41. //                for(i=0;i<20;i++)
  42. //                printf(" %02X",CDS5500_data[0].buf[i]);
  43. //                printf("\r\n");
  44. //                printf("CDS5500_data[1]=");
  45. //      for(i=0;i<20;i++)
  46. //                printf(" %02X",CDS5500_data[1].buf[i]);
  47. //                printf("\r\n");
  48.                 printf("CDS5500_data[3]=");
  49.       for(i=0;i<20;i++)
  50.                 printf(" %02X",CDS5500_data[CDSFrames_D].buf[i]);
  51.                 printf("\r\n\r\n");
  52. //                printf(" %02X",CDS5500_data[CDSFrames_D].buf[len+3]);
  53. //                printf("\r\n");
  54. //      printf(" %02X",(u8)(~csum));
  55. //                printf("\r\n");
  56.                         if(CDS5500_data[CDSFrames_D].buf[len+3]==(u8)(~csum)){
  57.                                 
  58.                                 if(CDS5500_data[CDSFrames_D].buf[2]==ID_A){
  59.                                         if((CDS5500_data[CDSFrames_D].buf[4]==CMD_WRITE)&&(CDS5500_data[CDSFrames_D].buf[5]==0X20)){
  60.                                                 speed_A=CDS5500_data[CDSFrames_D].buf[7]&0X03;
  61.                                                 speed_A<<=8;
  62.                                                 speed_A|=CDS5500_data[CDSFrames_D].buf[6];
  63.                                                 if(speed_A==0){                                                                                                                                                                        //制動
  64.                                                         GPIO_ResetBits(GPIOA,GPIO_Pin_2);
  65.                                                         GPIO_ResetBits(GPIOA,GPIO_Pin_3);
  66.                                                 }
  67.                                                 else if((CDS5500_data[CDSFrames_D].buf[7]&0X04)==0){                //前進
  68.                                                         GPIO_SetBits(GPIOA,GPIO_Pin_2);
  69.                                                         GPIO_ResetBits(GPIOA,GPIO_Pin_3);
  70.                                                 }
  71.                                                 else{                                                                //后退
  72.                      GPIO_ResetBits(GPIOA,GPIO_Pin_2);
  73.                                                         GPIO_SetBits(GPIOA,GPIO_Pin_3);
  74.                                                         
  75.                                                 }
  76.                                                 if(speed_A>1000) speed_A=1000;                                       
  77.                                                 TIM_SetCompare1(TIM3,speed_A);
  78.                                                 TIM3->CNT=0;
  79.                                         }
  80.                                 }
  81.                                 if(++CDSFrames_D>=MAX_FRAME_NUM) CDSFrames_D=0;
  82.                         }
  83.                         for(i=0;i<6;i++)
  84.                         {
  85.                                 csum+=CDS5500_data[CDSFrames_D].buf[11+i];
  86.                         }
  87.                         if(CDS5500_data[CDSFrames_D].buf[17]==(u8)(~csum)){
  88.                                 if(CDS5500_data[CDSFrames_D].buf[11]==ID_B){
  89.                                         if((CDS5500_data[CDSFrames_D].buf[13]==CMD_WRITE)&&(CDS5500_data[CDSFrames_D].buf[14]==0X20)){
  90.                                                 speed_B=CDS5500_data[CDSFrames_D].buf[16]&0X03;
  91.                                                 speed_B<<=8;
  92.                                                 speed_B|=CDS5500_data[CDSFrames_D].buf[15];
  93.                                                 if(speed_B==0){                                                                                                                                                                        //制動
  94.                                                         GPIO_ResetBits(GPIOA,GPIO_Pin_4);
  95.                                                         GPIO_ResetBits(GPIOA,GPIO_Pin_5);
  96.                                                 }
  97.                                                 else if((CDS5500_data[CDSFrames_D].buf[16]&0X04)==0){                //前進
  98.                                                         GPIO_SetBits(GPIOA,GPIO_Pin_4);
  99.                                                         GPIO_ResetBits(GPIOA,GPIO_Pin_5);
  100.                                                 }
  101.                                                 else{                                                                                                                                                                                                                //后退
  102.                                                         GPIO_ResetBits(GPIOA,GPIO_Pin_4);
  103.                                                         GPIO_SetBits(GPIOA,GPIO_Pin_5);
  104.                                                         
  105.                                                 }
  106.                                                 if(speed_B>1000) speed_A=1000;                                       
  107.                                                 TIM_SetCompare2(TIM3,speed_B);
  108.                                                 TIM3->CNT=0;
  109.                                         }
  110.                                 }
  111.                                 if(++CDSFrames_D>=MAX_FRAME_NUM) CDSFrames_D=0;
  112.                         }
  113.                         
  114.                         
  115.                 }
  116.                 else LED_OFF;
  117.         }
  118. }
復制代碼

所有資料51hei提供下載:
博創CDs5500協議.rar (611.52 KB, 下載次數: 10)








歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩精品视频在线免费观看 | 欧美在线日韩 | 精品在线观看视频 | 91精品国产综合久久久蜜臀 | 国产精品欧美一区二区 | 国产欧美一区二区精品性色超碰 | 三级黄色网址 | 秋霞午夜鲁丝一区二区老狼 | 成人亚洲天堂 | 青青草国产成人av片免费 | 国产专区在线 | 免费a在线观看 | 成人久久视频 | 毛片一级片 | 亚洲欧美专区 | 日韩有码在线视频 | 欧美午夜视频 | 午夜av在线播放 | 日本一级大毛片a一 | 五月婷婷在线播放 | 亚洲精品一区二区三 | 青青青草视频在线观看 | 久久久xxx | 久久亚洲免费视频 | 亚洲午夜视频在线观看 | 免费观看全黄做爰大片视频美国 | 性高潮久久久久久久 | 婷婷综合视频 | 在线观看黄色av | 国产一区福利 | 91午夜理伦私人影院 | 久久久精品一区二区三区 | 在线观看福利影院 | 色婷婷狠狠 | 日韩精品在线播放 | 国产精品一区在线播放 | 日韩国产一区 | 二区三区在线观看 | 成人免费在线观看网站 | 国产一区欧美 | 青青草在线观看视频 |