完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
基于stm32最小系统的蓝牙小车
硬件部分(成本 stm32最小系统(10r)型号具体为STM32F103C8T6 jdy-31蓝牙模块(10r) L298N继电器模块(10r)直流步进电机版 直插电解 小车底座 50-70r(套装包括 四个直流电机 四个车轮 两块亚克力板车身) 40p 排线 2r 公对公 一共为 82元 下面放出部分硬件图 直流电机 车轮 电机驱动模块 (说一下接法,VCC GND 接12v电源 5V接单片机供电 左右接电机 注意电机没有正负 下面附一张电机输io控制图) 四个信号角 根据代码来接单片机io口 蓝牙模块 说下接法 VCC GND接5V的源 TXD接单片机RXD RXD接单片机TXD 部分程序(参考于csdn一位大佬 修炼ing) 简单说下他的思路 蓝牙产生中断 串口通讯识别状态位 拉高/拉低io口电平 贴出主函数 全部代码留邮箱 我有空会发出 #include "MOTOR.h" #include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_it.h" #include #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif u8 i; u8 flag; void USART1_IRQHandler(void) { if(USART_GetITStatus(USART1, USART_IT_RXNE) == SET) { USART_ClearITPendingBit(USART1, USART_IT_RXNE); GPIO_ResetBits(GPIOC,GPIO_Pin_13); i= USART_ReceiveData(USART1); if(i=='0') { flag=0; } if(i=='1') { flag=1; } if(i=='2') { flag=2; } if(i=='3') { flag=3; } if(i=='4') { flag=4; } if(i=='5') { flag=5; } if(i=='6') { flag=6; } } } int main(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); USART_Cmd(USART1, ENABLE); MotorInit(); while(1) { GPIO_ResetBits(GPIOC,GPIO_Pin_13); switch(flag) { case 0: Stop(); break ; case 1: Turnleft(); break ; case 2: Turnright(); break ; case 3: Turnback(); break ; case 4: Turnfront(); break ; case 5: Leftaround(); break ; case 6: Rightaround(); break ; default: Stop(); break ; } } } PUTCHAR_PROTOTYPE { USART_SendData(USART1, (uint8_t) ch); while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) { } return ch; } 小贴士 C8T6下载代码 要把部分代码屏蔽一下 根据错误屏蔽以上代码 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1561 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1501 浏览 1 评论
933 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
665 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1555 浏览 2 评论
1848浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
610浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
504浏览 3评论
508浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
489浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 16:23 , Processed in 0.529352 second(s), Total 45, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号