打印
[APM32F4]

APM32F411 TINY 初体验

[复制链接]
1336|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 kai迪皮 于 2023-9-12 11:39 编辑

#申请原创# @21小跑堂

1 前言

最近拿到了极海的APM32F411 TINY 板卡,APM32F411是其新推出的新品,资源如下:

基于Arm® Cortex®-M4F内核,工作主频120MHz,具有高速运算能力、多种工作模式、以及丰富的高精度外设和通讯接口;内置CRC32运算单元,可为用户提供高集成度、高可靠性的SoC方案;作为APM32F4系列MCU的超值型拓展产品,能很好的满足用户对功耗、性能、性价比方面的产品均衡需求,可适用于电力,仪器仪表,工控,家电,物联网,新能源,智慧楼宇等广泛的应用领域。

更多内容可以看他们的官网:[APM32F411 (geehy.com)](https://geehy.com/apm32?id=81)

那话不多说,现在开始看看他们的板卡吧。

2 APM32F411 TINY板



板卡分为左右两个部分,右边是他们的板载仿真器,左边是他们的APM32F411芯片,外接的资源有1个Type-C(USB FS)、2个KEY、2个LED ,2个USART(与板载仿真器连接)。

3 板载仿真器连接电脑

使用Type-C线连接板载仿真器那边,可以看到设备管理器上多出了一个串口和“Geehy CMSIS-DAP WinUSB”设备。



这表明他们使用的板载仿真器是基于WinUSB的CMSIS-DAP固件,同时支持串口数据发送(好评!)。

4 板载串口及点灯Demo编写

由于有板载仿真器我们这不点个灯和串口打印一下?(#^.^#)。

我们去他们官网下载:https://geehy.com/uploads/tool/APM32F4xx_SDK_V1.4.zip

由于我想评估一下他们的LED,和串口功能。我这里选择串口1,进行一下验证,步骤如下:

1. 初始化串口1
2. 编写串口1接收中断及判断接收到回车进行发送。

为了方便,我直接在官方提供的“SysTick_TimeBase”上更改了(里面有LED的操作,不要多谢)。

串口初始化:
void USART1_Init(void)
{
    GPIO_Config_T GPIO_configStruct;
    USART_Config_T usartConfigStruct;
   
    GPIO_ConfigStructInit(&GPIO_configStruct);

    /* Enable GPIO clock */
    RCM_EnableAHB1PeriphClock(RCM_AHB1_PERIPH_GPIOA);

    RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_USART1);

    /* Connect PXx to USARTx_Tx */
    GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_9, GPIO_AF_USART1);

    /* Connect PXx to USARTx_Rx */
    GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_10, GPIO_AF_USART1);

    /* Configure USART Tx as alternate function push-pull */
    GPIO_configStruct.mode = GPIO_MODE_AF;
    GPIO_configStruct.pin = GPIO_PIN_9;
    GPIO_configStruct.speed = GPIO_SPEED_50MHz;
    GPIO_Config(GPIOA, &GPIO_configStruct);

    /* Configure USART Rx as input floating */
    GPIO_configStruct.mode = GPIO_MODE_AF;
    GPIO_configStruct.pin = GPIO_PIN_10;
    GPIO_Config(GPIOA, &GPIO_configStruct);

    /* USART configuration */
    usartConfigStruct.baudRate = 115200;
    usartConfigStruct.hardwareFlow = USART_HARDWARE_FLOW_NONE;
    usartConfigStruct.mode = USART_MODE_TX_RX;
    usartConfigStruct.parity = USART_PARITY_NONE;
    usartConfigStruct.stopBits = USART_STOP_BIT_1;
    usartConfigStruct.wordLength = USART_WORD_LEN_8B;

    USART_Config(USART1, &usartConfigStruct);

    USART_EnableInterrupt(USART1,USART_INT_RXBNE);
   
    NVIC_EnableIRQRequest(USART1_IRQn,1,0);

    /* Enable USART */
    USART_Enable(USART1);
}

串口中断服务函数:

void USART1_Isr(void)
{
    /* USART1 Recieve Data */
    if(USART_ReadStatusFlag(USART1, USART_FLAG_RXBNE) == SET)
    {
        txrxDataBufUSART1[rxCountUSART1] = (uint8_t)USART_RxData(USART1);

        rxCountUSART1++;

        if((txrxDataBufUSART1[rxCountUSART1-1] == 0x0A)&&(txrxDataBufUSART1[rxCountUSART1-2] == 0x0D))
        {
            for(txCountUSART1 = 0;txCountUSART1 < rxCountUSART1;txCountUSART1++)
            {
                USART_TxData(USART1,txrxDataBufUSART1[txCountUSART1]);

                /* wait for the data to be send */
                while (USART_ReadStatusFlag(DEBUG_USART, USART_FLAG_TXBE) == RESET);
            }

            rxCountUSART1 = 0;
        }
    }
}

主函数:

int main(void)
{
    USART1_Init();

    APM_LEDInit(LED2);
    APM_LEDInit(LED3);

    printf("APM32F411 TINY Demo\r\n");

    /* SysTick Initialization */
    SysTick_Init();

    while (1)
    {
        APM_LEDToggle(LED2);
        /* Precise Delay 1ms */
        SysTick_Delay_ms(1000);
        APM_LEDToggle(LED3);
    }
}


5 Demo下载


魔术棒选择仿真下载设置,选择:CMSIS-DAP Debugger



进一步设置如下:



然后编译程序后进行下载。

6 结果

程序下载至板卡后,板载的LED2/3交替闪烁,若此时已经打开串口助手会打印“APM32F411 TINY Demo”,使用串口助手发送数据(记得勾选“发送新行(Line by Line)”哦),会回复相同的数据。



代码在这里: APM32F4xx_SDK_V1.4_APM32F411 TINY Demo.zip (808.64 KB)

欢迎一起交流~~~~

使用特权

评论回复
沙发
qiangtech| | 2023-9-12 14:05 | 只看该作者
前面拿到的407 TINY板载的DAP LINK还没有串口,不知道哪里可以升级一下。

使用特权

评论回复
板凳
qiangtech| | 2023-9-12 14:05 | 只看该作者
前面拿到的407 TINY板载的DAP LINK还没有串口,不知道哪里可以升级一下。

使用特权

评论回复
评论
kai迪皮 2023-9-15 10:30 回复TA
411 的板卡上是支持的,你可以申请看看 
地板
21小跑堂| | 2023-9-15 10:53 | 只看该作者
hi 大佬,可以详细补充下文化在哪个的内容描述噢,目前文章字数还没达到审核原创的标准

使用特权

评论回复
评论
kai迪皮 2023-9-15 16:35 回复TA
好的,谢谢小跑堂的提醒,我下一篇注意一下。(#^.^#) 
5
tpgf| | 2023-10-11 13:14 | 只看该作者
现在的内核区分的如此之细的原因是什么呢

使用特权

评论回复
6
qcliu| | 2023-10-11 15:25 | 只看该作者
qiangtech 发表于 2023-9-12 14:05
前面拿到的407 TINY板载的DAP LINK还没有串口,不知道哪里可以升级一下。

可以考虑自己飞线接出来一个串口

使用特权

评论回复
7
drer| | 2023-10-11 16:01 | 只看该作者
通过串口下载程序的话 可以下载哪种类型的文件呢

使用特权

评论回复
8
coshi| | 2023-10-11 16:41 | 只看该作者
板载仿真器需要有类似于单片机的主控芯片吗

使用特权

评论回复
9
kxsi| | 2023-10-11 17:00 | 只看该作者
coshi 发表于 2023-10-11 16:41
板载仿真器需要有类似于单片机的主控芯片吗

应该不需要吧 要是需要的话 那第一个芯片的程序是如何写入的呢

使用特权

评论回复
10
wiba| | 2023-10-11 17:40 | 只看该作者
kxsi 发表于 2023-10-11 17:00
应该不需要吧 要是需要的话 那第一个芯片的程序是如何写入的呢

最一开始的老单片机根本就不是通过这种方式下载程序的

使用特权

评论回复
评论
kai迪皮 2023-10-12 09:44 回复TA
老单片机应该是用ISP方式进行下载的。 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

209

帖子

11

粉丝