【沁恒 CH32V208 开发板免费试用】手机蓝牙控制LED灯 - RISC-V MCU技术社区 - 电子技术论坛 - 广受欢迎的专业电子论坛
分享 收藏 返回

[资料]

【沁恒 CH32V208 开发板免费试用】手机蓝牙控制LED灯

CH32V208系列是基于32位RISC-V设计的无线型微控制器,配备了硬件堆栈区、快速中断入口,在标准RISC-V基础上大大提高了中断响应速度。搭载V4C内核,加入内存保护单元,同时降低硬件除法周期。片上集成2Mbps低功耗蓝牙BLE 通讯模块。

试用目的

驱动蓝牙,控制板的载的LED灯的亮与灭。

试验器材

硬件

CH32V208开发板
带蓝牙的手机

软件

BLE调试助手
MounRiver Studio
CH32V20xEVT\EVT\EXAM\BLE\Periphera示例

实现步聚

1、打开perphera示例。
2、增加LED初始化,初始化GPIO8为控制IO,并把PA8连到LED1上。代码如下:

/*********************************************************************
 * @fn      GPIO_Toggle_INIT
 *
 * [url=home.php?mod=space&uid=2666770]@Brief[/url]   Initializes GPIOA.0
 *
 * [url=home.php?mod=space&uid=1141835]@Return[/url]  none
 */
void GPIO_Toggle_INIT(void)
{
    GPIO_InitTypeDef GPIO_InitStructure = {0};

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

把这个函数添加到periphera_main.c前面。并在把他加入到初始化函数中:
void Main_Circulation(void)
{
GPIO_Toggle_INIT();
while(1)
{
TMOS_SystemProcess();
}
}
2、在ble接收任务函数中增加接收字符的判断。ble任务处理在peripheral.c中,我们修改例程中的simpleProfileChangeCB函数
代码如下:

static void simpleProfileChangeCB(uint8_t paramID, uint8_t *pValue, uint16_t len)
{
    switch(paramID)
    {
        case SIMPLEPROFILE_CHAR1:
        {
            uint8_t newValue[SIMPLEPROFILE_CHAR1_LEN];
            tmos_memcpy(newValue, pValue, len);
            PRINT("profile ChangeCB CHAR1.. %s\r\n",pValue);
            if (pValue[0] == 48) {
                PRINT("OPEN LED.. \n");
                GPIO_WriteBit(GPIOA, GPIO_Pin_8,Bit_SET);
            }
            else {
                PRINT("CLOSE LED.. \n");
                GPIO_WriteBit(GPIOA, GPIO_Pin_8,Bit_RESET);
            }
            break;
        }

        case SIMPLEPROFILE_CHAR3:
        {
            uint8_t newValue[SIMPLEPROFILE_CHAR3_LEN];
            tmos_memcpy(newValue, pValue, len);
            PRINT("profile ChangeCB CHAR3..\n");
            break;
        }

        default:
            // should not reach here!
            break;
    }
}

到此代码修改就结束了。编下载到开发板。打开BLE调试助手。

调试

在蓝牙调式助手上我们看到的Simple Peripheral的蓝牙设备,我们点CONNECT进去:
b36e97289fc0245c5b1887f857fb84d.jpg
image.png
b36e97289fc0245c5b1887f857fb84d.jpg
我们发送数据后,开发板从串口打印出日志,并实现了LED灯的亮与灭。

image.png

image.png

image.png

总结

在官方提供的例程上与手机的数据交互非常简单、方便。

手机控制开发板LED通过蓝牙

更多回帖

×
发帖