本文主要介绍基于【沁恒蓝牙mesh】CH58x USB功能,结合CH583m 评估板的软硬件为二次开发作一系列说明
- 💖 作者简介:大家好,我是喜欢记录零碎知识点的小菜鸟。😎
- 📝 个人主页:欢迎访问我的 Ethernet_Comm 博客主页🔥
- 🎉 支持我:点赞👍+收藏⭐️+留言📝
- 📣 系列专栏:沁恒蓝牙mesh二次开发🍁
- 💬格言:写文档啊不是写文章,重要的还是直白!🔥
1. CH583M 评估板
CH583 是集成 BLE 无线通讯的 32 位 RISC 微控制器。片上集成低功耗蓝牙 BLE 通讯模块、全速USB 主机和设备控制器及收发器、SPI、4 个串口、ADC、触摸按键检测模块、RTC 等丰富的外设资源
2.USB 引脚与控制器
2.1 硬件部分引脚
TYPE-C
端口 UD-
和 UD+
连接到单片机的 U2D-
和 U2D+
,对应 PB12
PB13
引脚
2.2 软件部分接口
demo 中软件部分使用的是 端口2
做数据的通讯
c
app_usb_init(); // 初始化 USB
// 单片机发送数据
void USBSendData( uint8_t *SendBuf, uint8_t l); // 单片机 发送数据给主机
{
memcpy(pEP2_IN_DataBuf,SendBuf,l);
DevEP2_IN_Deal( l ); // 端点2数据处理
}
// 单片机收到数据
void USB_DevTransProcess()
{
..............................................................................................................................................................................
case UIS_TOKEN_OUT | 2 : /*端点2接收到数据*/
{
//printf("usb_rec UIS_TOKEN_OUT |2\n");
if ( R8_USB_INT_ST & RB_UIS_TOG_OK )// 不同步的数据包将丢弃
{
printf("usb_rec UIS_TOKEN_OUT |2 ***************** \n");
len = R8_USB_RX_LEN;
Ep2DataRxLen = len;
Ep2DataRxDone = 1;
for(uint8_t j=0; j<(MAX_PACKET_SIZE/4); j++)
{
printf(" 0x%02x",EP2_Databuf[j]);
((UINT32 *)Ep2OUTDataBuf)[j] = ((UINT32 *)EP2_Databuf)[j];
// ((UINT32 *)Ep2OUTDataBuf)[j] = ((UINT32 *)Ep2Buffer)[j];
}
printf(" \r\n");
DevEP2_OUT_Deal( len );
}
}
break;
......................................................................................................................................................
}