例程资料链接如下(群文件也可下载):
BD网盘链接:
https://pan.baidu.com/s/187ePq84u2QjE1bsVPM6i3g?pwd=9jvv
提取码:9jvv
一、实验简介
本实验是使用CW32单片机制作一个入门的遥控循迹小车。遥控采用蓝牙配合手机APP进行遥控。循迹使用一个5路的循迹模块。使用OLED模块进行显示当前小车状态。
二、实验器材
本实验使用到了CW32F030C8小蓝板、智能小车底板、电机驱动模块、OLED模块、DX-BT04-E蓝牙模块、Wch-Link下载调试器、Keil5开发环境。
二、接线图
实验完整接线图:
四、用到的外设
1.串口2:
串口2用于蓝牙模块,使手机和单片机通过蓝牙模块进行串口透传,从 而进行点对点通信。
2.高级定时器ATIM:
初始化高级定时器CH1B和CH2B进行PWM波输出,从而达到电机调速目的。
3.基本定时器BTIM1:
初始化基本定时器1,在基本定时器中断服务函数中对循迹模块进行扫描。将扫描的结果保存,以便在循迹模式中使用。
4.IIC1:
IIC1用于外挂OLED显示模块。
五、核心代码
// 基本定时器中断回调函数
// 在回调函数中对循迹模块进行扫描,将循迹模块的状态保存进sensor_data中
void BTIM1_IRQHandler(void)
{
if (BTIM_GetITStatus(CW_BTIM1, BTIM_IT_OV)) // 判断是否是通道1中断
{
BTIM_ClearITPendingBit(CW_BTIM1, BTIM_IT_OV); // 清除中断标志位
char t = 0x00; // 设置零时变量保存灰度传感器的值
// 保存灰度传感器的值
// 采用或运算,检测到黑线将相应的位设置为1
if (!GPIO_ReadPin(TRACKING_GPIOA, TRACKING_1))
{
t |= 0x08; // 00001000 左边数第一个
}
if (!GPIO_ReadPin(TRACKING_GPIOA, TRACKING_2))
{
t |= 0x04; // 00000100 左边数第二个
}
if (!GPIO_ReadPin(TRACKING_GPIOA, TRACKING_3))
{
t |= 0x02; // 00000010 左边数以三个
}
if (!GPIO_ReadPin(TRACKING_GPIOA, TRACKING_4))
{
t |= 0x01; // 00000001 左边数第4个
}
if (!GPIO_ReadPin(TRACKING_GPIOC, TRACKING_5))
{
t |= 0x10; // 00010000 左边数第5个
}
sensor_data = t; // 将灰度传感器的值赋值给sensor_data
}
}
// 串口1中断处理函数
void UART1_IRQHandler(void)
{
unsigned char TxRxBuffer;
if (USART_GetITStatus(CW_UART1, USART_IT_RC) != RESET)
{
USART_ClearITPendingBit(CW_UART1, USART_IT_RC); // 清除中断标志位
TxRxBuffer = USART_ReceiveData_8bit(CW_UART1); // 将接收到的数据放入TxRxBuffer
USART_RX_BUF[rxIndex] = TxRxBuffer; // 将接收到的数据放入缓冲区
if (rxIndex < USART_REC_LEN - 1) // 做数据长度的限制,留一个字节用于结束字符或者溢出检测
{
// 接收到的字符包含 n 或者 r 结束接收
if (USART_RX_BUF[rxIndex - 1] == 'n' || USART_RX_BUF[rxIndex - 1] == 'r')
{
USART_RX_BUF[rxIndex] = '?'; // 在最后一个字节加上空字符,表示字符串结束
}
else
{
rxIndex++;
}
}
rxIndex = 0; // 清除数据标志
flag = 1; // 清除
}
审核编辑 黄宇
-
遥控
+关注
关注
11文章
290浏览量
58001 -
循迹小车
+关注
关注
42文章
65浏览量
69139 -
CW32
+关注
关注
1文章
256浏览量
1286
发布评论请先 登录
如何使用新版本J-Flash编程CW32 MCU?

祝贺武汉芯源半导体CW32生态社区荣获立创开源硬件平台&quot;优质合作社区&quot;荣誉!

【硬核项目】STM32F103 智能小车全栈开发:红外循迹 / 避障算法 + WiFi 远程控制,附原理图与代码

蓝牙无线遥控小车
代码+案例+生态:武汉芯源半导体CW32嵌入式开发实战正式出版

代码+案例+生态:武汉芯源半导体CW32嵌入式开发实战正式出版
武汉芯源半导体CW32芯片重庆地区线下技术交流会成功举办
CW32模块使用 红外循迹传感器

19.3-星曈科技 openmv Hopenmv发送五个uchar Openmv+STM32F103C8T6视觉巡线小车 STM32循迹小车系列教程

20.0-电磁杆的组装和实物介绍“这个是就是你想要的“-智能车电磁组 电磁循迹小车

20.3-使用两个通道进行电磁循迹 智能车竞赛 电磁杆原理图 电磁循迹小车 STM32电磁小车 电磁循迹算法

20.2-电磁杆在磁轨道的测试 零基础入门智能车竞赛 STM32电磁小车

评论