标题: 关于stm32f103c8t6使用PWM控制小车的经验 避障加蓝牙 [打印本页]

作者: splendid    时间: 2017-3-4 16:15
标题: 关于stm32f103c8t6使用PWM控制小车的经验 避障加蓝牙
这个是我之前通过不断的查资料和更该写的使用stm32f103c8t6控制电机,并且可调速的程序,对于新手可以有一些参考作用!!!
f103c8t6 - 避障加蓝牙完整PWM控制的源程序:

完整源码下载:
f103c8t6 - 避障加蓝牙完整PWM控制.zip (4.28 MB, 下载次数: 601)



下面是主程序预览:
  1. #include"usart.h"
  2. #include"pwm.h"
  3. #include"sys.h"
  4. #include"delay.h"
  5. #include"hw.h"
  6. #include"csb.h"
  7. #include"lanya.h"
  8. int main()
  9. {
  10.         int left,right,bzl,bzr,counter,i=0,j,max;
  11.         u16 distance,dis[5];
  12.         uart_init(9600);
  13.         hw_init();

  14.   delay_init();  //初始化延时函数
  15.         PWM_Init(600,0);
  16.        
  17.         while(1)
  18.                 {

  19.                
  20.           lanya();       
  21.                 bzl=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13);//避障左边传感器
  22.                 bzr=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4);
  23.                
  24. //                        printf("dis=%u\r\n",distance);
  25. //                        delay_ms(500);
  26. //         
  27. //                        printf("i=%d\r\n",i);

  28.                         //直行

  29.                
  30.                 max=0;
  31.                 for(counter=0;counter<5;counter++)
  32.                 {                       
  33.                 dis[counter]=csb();       
  34.                 }
  35.                 for(j=0;j<5;j++)
  36.                 {
  37.                 max=max+dis[j];
  38.                 }
  39.                 distance=max/5;
  40.                
  41.                         //直行
  42.                         //左边
  43.                
  44.                        
  45.                  if(bzr==0)//左转
  46.                 {
  47.                                
  48.                                         TIM_SetCompare3(TIM2,0);//PA2提速
  49.                                         TIM_SetCompare4(TIM2,600);//PA3为低
  50.                                        
  51.                                         TIM_SetCompare2(TIM3,600);//PA7反转
  52.                                         TIM_SetCompare1(TIM3,0);//PA6为
  53.                                                 delay_ms(20);
  54.                                
  55.                
  56.                 }
  57.                        
  58.                 if(bzl==0)//右转
  59.                 {
  60.        
  61.                 TIM_SetCompare3(TIM2,600);//PA2反转
  62.                 TIM_SetCompare4(TIM2,1);//PA3为
  63.                                
  64.           TIM_SetCompare2(TIM3,0);//PA7提速
  65.                 TIM_SetCompare1(TIM3,600);//PA6为低
  66.                         delay_ms(20);       
  67.          
  68.        
  69.                 }
  70.                 if(distance<200)//左转
  71.                 {
  72.                        
  73.                        
  74.                        
  75.                                        
  76.                                         TIM_SetCompare3(TIM2,0);//PA2提速
  77.                                         TIM_SetCompare4(TIM2,600);//PA3为低
  78.                                        
  79.                                         TIM_SetCompare2(TIM3,600);//PA7反转
  80.                                         TIM_SetCompare1(TIM3,0);//PA6为
  81.                                                 delay_ms(20);
  82.                        
  83.                
  84.                 }
  85.                 if(bzl==0&&distance<200)
  86.                 {
  87.                
  88.                                         TIM_SetCompare3(TIM2,0);//PA2提速
  89.                                         TIM_SetCompare4(TIM2,600);//PA3为低
  90.                                        
  91.                                         TIM_SetCompare2(TIM3,600);//PA7反转
  92.                                         TIM_SetCompare1(TIM3,0);//PA6为
  93.                                                 delay_ms(20);
  94.          
  95.                 }
  96.                 if(bzr==0&&distance<200)
  97.                 {
  98.                
  99.                                         TIM_SetCompare3(TIM2,0);//PA2提速
  100.                                         TIM_SetCompare4(TIM2,600);//PA3为低
  101.                                        
  102.                                         TIM_SetCompare2(TIM3,600);//PA7反转
  103.                                         TIM_SetCompare1(TIM3,0);//PA6为
  104.                                                 delay_ms(20);
  105.          
  106.                 }
  107.                 if(bzr==0&&bzl==0)
  108.                 {
  109.                      
  110.                                         TIM_SetCompare3(TIM2,0);//PA2提速
  111.                                         TIM_SetCompare4(TIM2,600);//PA3为低
  112.                                        
  113.                                         TIM_SetCompare2(TIM3,600);//PA7反转
  114.                                         TIM_SetCompare1(TIM3,0);//PA6为
  115.                                                 delay_ms(20);
  116.                
  117.                 }
  118.                 if(bzr==0&&bzl==0&&distance<200)
  119.                 {
  120.                              TIM_SetCompare3(TIM2,0);//PA2提速
  121.                                         TIM_SetCompare4(TIM2,600);//PA3为低
  122.                                        
  123.                                         TIM_SetCompare2(TIM3,600);//PA7反转
  124.                                         TIM_SetCompare1(TIM3,0);//PA6为
  125.                                                 delay_ms(30);
  126.                                 }
  127.                
  128.                 }
  129.                 TIM_SetCompare2(TIM3,200);//PA7
  130.                 TIM_SetCompare1(TIM3,600);//PA6为低
  131.                         //右边
  132.                 TIM_SetCompare3(TIM2,200);//PA2
  133.                 TIM_SetCompare4(TIM2,600);//PA3为低
  134.                 delay_ms(20);


  135.        
  136. }
复制代码

作者: liangqin1573    时间: 2017-3-7 13:43
感谢分享,正在学习103中
作者: splendid    时间: 2017-3-7 19:56
liangqin1573 发表于 2017-3-7 13:43
感谢分享,正在学习103中

新手建议从手册开始学习,将讲解看懂了再写
作者: liangqin1573    时间: 2017-3-14 17:58
splendid 发表于 2017-3-7 19:56
新手建议从手册开始学习,将讲解看懂了再写

自己买了块stm32f103c8t6最小系统板,现在把IO输出,定时器,RTC,PWM都弄一遍了。还搞了块OLED,SPI通讯的,把RTC弄成万年历功能,在OLED上显示。
还买了AM2320、HTU21温湿度传感器,把I2C也学了,弄上去显示温度。

还学了ADC转换,DMA方式自动读取数据,实现了10K的热敏电阻读取温度。
后面还再弄了块LCD。STM32学习起来比51爽啊,好多自己想实现的东西就往里面填充。。。
我是空调行业搞PLC自控的,所以最先想到的就是温湿度的东西,正在学单片机,请楼主不吝赐教






作者: holycaca    时间: 2017-4-19 11:57
感谢分享
作者: holycaca    时间: 2017-4-19 11:58
楼主有用L298N吗

作者: 20132146    时间: 2017-4-23 20:56
感谢楼主分享!!!
作者: 20132146    时间: 2017-4-23 21:00
感谢分享
作者: 江中郎    时间: 2017-6-1 02:09
感想分享
作者: 671208    时间: 2017-7-27 09:05
谢谢分享

作者: 城啊    时间: 2017-8-3 12:10
谢谢楼主分享
作者: splendid    时间: 2017-8-5 22:44
holycaca 发表于 2017-4-19 11:58
楼主有用L298N吗

是的,用的就是L298N
作者: huangjiekaiming    时间: 2017-8-7 04:24
大家都用298,好好学习
作者: cqgdlq    时间: 2017-11-8 23:13
数据接受能行吗?
作者: joncy    时间: 2018-1-4 16:45
很好
能够有帮助
作者: 胡校锋    时间: 2018-2-1 19:25
学习中,感谢你的代码,给了我不少帮助。
作者: fkssa    时间: 2018-2-22 22:37
厉害厉害,感谢分享,我们正要求做类似的比赛用,感谢分享
作者: mjkami    时间: 2018-3-12 09:39
谢谢分享
作者: Haydn1    时间: 2018-4-14 15:53
感谢楼主,正在学习STM32的开发
作者: XuLing    时间: 2018-4-16 18:16
你搭建的图呢,只有程序吗
作者: ly1728380873    时间: 2018-5-16 13:34
电脑总是识别有病毒是什么鬼  求分享一下  谢谢 1917055575@qq.com
作者: 扭曲的黑    时间: 2018-5-25 16:00
感觉很厉害的
作者: 田联    时间: 2018-6-5 16:41
准备学习STM单片机 正好需要,非常感谢!!
作者: peming    时间: 2018-6-15 21:25
谢谢分享

作者: guokexiaoming    时间: 2018-7-2 17:31
正需要PWM来控制舵机。感谢楼主
作者: ALongTime    时间: 2018-8-7 19:02
感谢大佬分享,新手上路ing,就需要各种例程^_^
作者: ALongTime    时间: 2018-8-14 19:42
你好,有实物图或者硬件电路图吗?还有,请问这里蓝牙实现的是什么功能?
作者: vpoppend    时间: 2018-9-13 13:57
感谢分享,正在学习103中
作者: 之一知足    时间: 2018-10-2 00:19
楼主,有没有手机蓝牙控制的APP啊?
作者: bettyliu    时间: 2018-10-17 09:14
有没有硬件搭建,,求赐
作者: ABCDEFG1888    时间: 2018-10-24 13:13
你好,楼主,请问你的csb.c是关于什么的呢?有点看不懂
作者: jetty-9    时间: 2018-10-24 19:51
只看了一部分代码,请问楼主这个代码是驱动四个轮子的嘛?
作者: wodemayaaa    时间: 2018-11-10 16:10
感谢楼主
作者: ldg9    时间: 2018-11-10 18:58

感谢楼主分享!!!
作者: splendid    时间: 2019-1-14 23:33
ABCDEFG1888 发表于 2018-10-24 13:13
你好,楼主,请问你的csb.c是关于什么的呢?有点看不懂

那是超声波避障函数
作者: jijkf    时间: 2019-1-16 11:29
程序哪里
作者: bluecar    时间: 2019-2-16 13:47
很给力的文件
作者: 192141477    时间: 2019-8-4 14:48
帮助较大
作者: 迁就    时间: 2019-8-4 16:18
谢谢分享
作者: 全俊玮    时间: 2019-9-16 21:19
好东西 可以啊




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1