找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 20403|回复: 40
打印 上一主题 下一主题
收起左侧

关于stm32f103c8t6使用PWM控制小车的经验 避障加蓝牙

  [复制链接]
跳转到指定楼层
楼主
这个是我之前通过不断的查资料和更该写的使用stm32f103c8t6控制电机,并且可调速的程序,对于新手可以有一些参考作用!!!
f103c8t6 - 避障加蓝牙完整PWM控制的源程序:

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



下面是主程序预览:
  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. }
复制代码

评分

参与人数 4黑币 +115 收起 理由
hbcdcdbbc + 5 很给力!
Haydn1 + 5 很给力!
fkssa + 5 共享资料的黑币奖励!
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏14 分享淘帖 顶6 踩
回复

使用道具 举报

来自 2#
ID:52002 发表于 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自控的,所以最先想到的就是温湿度的东西,正在学单片机,请楼主不吝赐教





评分

参与人数 1黑币 +90 收起 理由
admin + 90 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:52002 发表于 2017-3-7 13:43 | 只看该作者
感谢分享,正在学习103中
回复

使用道具 举报

地板
ID:155845 发表于 2017-3-7 19:56 | 只看该作者
liangqin1573 发表于 2017-3-7 13:43
感谢分享,正在学习103中

新手建议从手册开始学习,将讲解看懂了再写
回复

使用道具 举报

5#
ID:161818 发表于 2017-4-19 11:57 | 只看该作者
感谢分享
回复

使用道具 举报

6#
ID:161818 发表于 2017-4-19 11:58 | 只看该作者
楼主有用L298N吗
回复

使用道具 举报

7#
ID:192836 发表于 2017-4-23 20:56 | 只看该作者
感谢楼主分享!!!
回复

使用道具 举报

8#
ID:192836 发表于 2017-4-23 21:00 | 只看该作者
感谢分享
回复

使用道具 举报

9#
ID:206553 发表于 2017-6-1 02:09 | 只看该作者
感想分享
回复

使用道具 举报

10#
ID:222670 发表于 2017-7-27 09:05 | 只看该作者
谢谢分享
回复

使用道具 举报

11#
ID:167518 发表于 2017-8-3 12:10 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

12#
ID:155845 发表于 2017-8-5 22:44 | 只看该作者

是的,用的就是L298N
回复

使用道具 举报

13#
ID:225338 发表于 2017-8-7 04:24 来自手机 | 只看该作者
大家都用298,好好学习
回复

使用道具 举报

14#
ID:67705 发表于 2017-11-8 23:13 | 只看该作者
数据接受能行吗?
回复

使用道具 举报

15#
ID:64897 发表于 2018-1-4 16:45 | 只看该作者
很好
能够有帮助
回复

使用道具 举报

16#
ID:281550 发表于 2018-2-1 19:25 | 只看该作者
学习中,感谢你的代码,给了我不少帮助。
回复

使用道具 举报

17#
ID:284852 发表于 2018-2-22 22:37 | 只看该作者
厉害厉害,感谢分享,我们正要求做类似的比赛用,感谢分享
回复

使用道具 举报

18#
ID:262564 发表于 2018-3-12 09:39 | 只看该作者
谢谢分享
回复

使用道具 举报

19#
ID:298945 发表于 2018-4-14 15:53 | 只看该作者
感谢楼主,正在学习STM32的开发
回复

使用道具 举报

20#
ID:232534 发表于 2018-4-16 18:16 | 只看该作者
你搭建的图呢,只有程序吗
回复

使用道具 举报

21#
ID:331222 发表于 2018-5-16 13:34 | 只看该作者
电脑总是识别有病毒是什么鬼  求分享一下  谢谢 1917055575@qq.com
回复

使用道具 举报

22#
ID:214281 发表于 2018-5-25 16:00 | 只看该作者
感觉很厉害的
回复

使用道具 举报

23#
ID:162562 发表于 2018-6-5 16:41 | 只看该作者
准备学习STM单片机 正好需要,非常感谢!!
回复

使用道具 举报

24#
ID:352695 发表于 2018-6-15 21:25 | 只看该作者
谢谢分享
回复

使用道具 举报

25#
ID:285608 发表于 2018-7-2 17:31 | 只看该作者
正需要PWM来控制舵机。感谢楼主
回复

使用道具 举报

26#
ID:381157 发表于 2018-8-7 19:02 | 只看该作者
感谢大佬分享,新手上路ing,就需要各种例程^_^
回复

使用道具 举报

27#
ID:381157 发表于 2018-8-14 19:42 | 只看该作者
你好,有实物图或者硬件电路图吗?还有,请问这里蓝牙实现的是什么功能?
回复

使用道具 举报

28#
ID:240819 发表于 2018-9-13 13:57 | 只看该作者
感谢分享,正在学习103中
回复

使用道具 举报

29#
ID:342451 发表于 2018-10-2 00:19 | 只看该作者
楼主,有没有手机蓝牙控制的APP啊?
回复

使用道具 举报

30#
ID:409748 发表于 2018-10-17 09:14 | 只看该作者
有没有硬件搭建,,求赐
回复

使用道具 举报

31#
ID:398104 发表于 2018-10-24 13:13 | 只看该作者
你好,楼主,请问你的csb.c是关于什么的呢?有点看不懂
回复

使用道具 举报

32#
ID:311215 发表于 2018-10-24 19:51 | 只看该作者
只看了一部分代码,请问楼主这个代码是驱动四个轮子的嘛?
回复

使用道具 举报

33#
ID:424129 发表于 2018-11-10 16:10 | 只看该作者
感谢楼主
回复

使用道具 举报

34#
ID:424180 发表于 2018-11-10 18:58 | 只看该作者

感谢楼主分享!!!
回复

使用道具 举报

35#
ID:155845 发表于 2019-1-14 23:33 | 只看该作者
ABCDEFG1888 发表于 2018-10-24 13:13
你好,楼主,请问你的csb.c是关于什么的呢?有点看不懂

那是超声波避障函数
回复

使用道具 举报

36#
ID:259898 发表于 2019-1-16 11:29 | 只看该作者
程序哪里
回复

使用道具 举报

37#
ID:476214 发表于 2019-2-16 13:47 | 只看该作者
很给力的文件
回复

使用道具 举报

38#
ID:553901 发表于 2019-8-4 14:48 | 只看该作者
帮助较大
回复

使用道具 举报

39#
ID:484435 发表于 2019-8-4 16:18 | 只看该作者
谢谢分享
回复

使用道具 举报

40#
ID:457666 发表于 2019-9-16 21:19 | 只看该作者
好东西 可以啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表