找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STM32蓝牙小车程序问题 发送信号小车不动

[复制链接]
跳转到指定楼层
楼主
ID:810492 发表于 2021-11-27 17:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
300黑币
蓝牙小车主程序这样的
能确认蓝牙正常能收到信号,电机正常能启动,单片机是新焊接好的。但是我手机连接蓝牙以后发送信号小车不动,是什么问题。
  1. void Motor_12_Config(void);
  2.         u8 i;
  3.   u8 b;
  4.          u8 res=0x61;;
  5.         u16 USART1_RX_STA;
  6.       


  7. void chuankou_Init(void)
  8. {
  9.         GPIO_InitTypeDef GPIO_aioegfh;
  10.         USART_InitTypeDef USART_jiiijef;
  11.         NVIC_InitTypeDef NVIC_JIEISJJ;
  12.       

  13.                 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
  14.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

  15.          GPIO_aioegfh.GPIO_Mode=GPIO_Mode_AF_PP;
  16. GPIO_aioegfh.GPIO_Pin=GPIO_Pin_9;
  17. GPIO_aioegfh.GPIO_Speed=GPIO_Speed_50MHz;
  18.         GPIO_Init(GPIOA,&GPIO_aioegfh);                        
  19.          
  20.          GPIO_aioegfh.GPIO_Mode=GPIO_Mode_IN_FLOATING;
  21. GPIO_aioegfh.GPIO_Pin=GPIO_Pin_10;
  22. GPIO_aioegfh.GPIO_Speed=GPIO_Speed_50MHz;
  23.                 GPIO_Init(GPIOA,&GPIO_aioegfh);
  24.       
  25.       
  26. USART_jiiijef.USART_BaudRate=38400;
  27.         USART_jiiijef.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
  28.         USART_jiiijef.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;
  29.         USART_jiiijef.USART_Parity=USART_Parity_No;
  30.         USART_jiiijef.USART_StopBits=USART_StopBits_1;
  31.         USART_jiiijef.USART_WordLength=USART_WordLength_8b;
  32.       
  33.         USART_Init(USART1,&USART_jiiijef);
  34.       
  35.       
  36.         USART_Cmd(USART1,ENABLE);  
  37.       
  38.         USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);  
  39.       
  40.         NVIC_JIEISJJ.NVIC_IRQChannel=USART1_IRQn;
  41.         NVIC_JIEISJJ.NVIC_IRQChannelCmd=ENABLE;
  42.         NVIC_JIEISJJ.NVIC_IRQChannelPreemptionPriority=2;
  43.         NVIC_JIEISJJ.NVIC_IRQChannelSubPriority=2;
  44.         NVIC_Init(&NVIC_JIEISJJ);
  45.       
  46.          
  47. }

  48.       
  49. void USART1_IRQHandler(void)
  50. {

  51.          if(USART_GetITStatus(USART1,USART_IT_RXNE))
  52.          {
  53.                 res= USART_ReceiveData(USART1);  
  54.                  USART_SendData(USART1,res);  
  55.                  
  56.                  
  57.          }
  58.       
  59. }

  60. int main()
  61. {



  62.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  63.         delay_init();                     
  64.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);


  65.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  66.         chuankou_Init();
  67. //        res=USART_ReceiveData(USART1
  68.         Motor_1_STOP();
  69.         Motor_2_STOP();
  70.         Motor_3_STOP();
  71.         Motor_4_STOP();
  72.         switch(res)
  73.         {
  74.                 case'1':Motor_1_PRun();
  75.                   Motor_2_PRun();
  76.                   Motor_3_PRun();
  77.                   Motor_4_PRun();
  78.                  delay_ms(10000);
  79.                            break;
  80.                 case'2':Motor_1_STOP();
  81.                   Motor_2_PRun();
  82.                   Motor_3_STOP();
  83.                   Motor_4_PRun();
  84.                   delay_ms(10000);
  85.                           break;
  86.                 case'3':Motor_1_PRun();
  87.                   Motor_2_STOP();
  88.                   Motor_3_PRun();
  89.                   Motor_4_STOP();
  90.                  delay_ms(10000);
  91.                           break;
  92.                 case'4':Motor_1_NRun();
  93.                   Motor_2_NRun();
  94.                   Motor_3_NRun();
  95.                   Motor_4_NRun();
  96.                                                  delay_ms(10000);
  97.                          break;
  98.                
  99.                 case'5':Motor_1_STOP();
  100.                   Motor_2_STOP();
  101.                         Motor_3_STOP();
  102.                   Motor_4_STOP();
  103.           break;

  104. }
  105.         }
复制代码


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

使用道具 举报

沙发
ID:139866 发表于 2021-12-1 15:42 | 只看该作者
可能是因为程序跑到头了吧,一条路走到底,再也回不到最初的起点了

评分

参与人数 1黑币 +6 收起 理由
AAA_MCU + 6 赞一个!

查看全部评分

回复

使用道具 举报

板凳
ID:313048 发表于 2021-12-1 17:53 | 只看该作者
先确定串口是否接收到数据并正确解析,然后再确定电机驱动是否正常,能否正常转动,解决这俩问题就好了
回复

使用道具 举报

地板
ID:624769 发表于 2021-12-2 00:02 | 只看该作者
就如沙发所说,程序跑完了,没了,看上去代码一大堆,其实跑起来可能都不用一秒,就跑完了,或者说跑飞了。然后你这头蓝牙再怎么操作,那头也不会回应。
回复

使用道具 举报

5#
ID:739727 发表于 2021-12-2 00:34 | 只看该作者
天ノ忆 发表于 2021-12-1 15:42
可能是因为程序跑到头了吧,一条路走到底,再也回不到最初的起点了

一看就是老油条
回复

使用道具 举报

6#
ID:944770 发表于 2021-12-2 16:17 | 只看该作者
先用串口助手,和手机通讯看接收指令,再和小车通讯,发送指令看看
回复

使用道具 举报

7#
ID:810492 发表于 2021-12-2 21:50 | 只看该作者
但是他有一个轮子会自己一直转的,我没给信号也在转
回复

使用道具 举报

8#
ID:810492 发表于 2021-12-2 21:50 | 只看该作者
AUG 发表于 2021-12-1 17:53
先确定串口是否接收到数据并正确解析,然后再确定电机驱动是否正常,能否正常转动,解决这俩问题就好了

东西正常,有个轮子这个程序还没收到信号就已经在转动了。然后其他几个轮子都不动的
回复

使用道具 举报

9#
ID:624769 发表于 2021-12-3 00:17 | 只看该作者
n9u7 发表于 2021-12-2 21:50
东西正常,有个轮子这个程序还没收到信号就已经在转动了。然后其他几个轮子都不动的

你确定正常?
你真的认为,只能一条路跑到底,并且最后直接飞出,放飞自由的程序是正常的?
回复

使用道具 举报

10#
ID:987484 发表于 2021-12-3 10:47 | 只看该作者
先用串口助手,和手机通讯看接收指令,再和小车通讯,发送指令看看
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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