[PIC32/SAM]

ATSAMD51 EVK评估板评测6串口发送

[复制链接]
2641|16
手机看帖
扫描二维码
随时随地手机跟帖
比神乐|  楼主 | 2022-12-6 01:33 | 显示全部楼层 |阅读模式
我一开始装的MPLAB V5.30,找不到Harmony的下载地方。
后来下载了一个MPLABX V5.40,谁知还是不行。我记得说明书上用的就是V5.40
没办法,又下载了一个V5.50,废了老大的劲,终于下好了Harmony,建立了hello工程。
照着说明书做,因为版本不同,有个别地方还不太一样。
上代码:
// *****************************************************************************
// *****************************************************************************
// Section: Included Files
// *****************************************************************************
// *****************************************************************************

#include <stddef.h>                     // Defines NULL
#include <stdbool.h>                    // Defines true
#include <stdlib.h>                     // Defines EXIT_FAILURE
#include "definitions.h"                // SYS function prototypes

char menu[]="How Are you?";
// *****************************************************************************
// *****************************************************************************
// Section: Main Entry Point
// *****************************************************************************
// *****************************************************************************

int main ( void )
{
   
    /* Initialize all modules */
    SYS_Initialize ( NULL );
    printf("\r\n--------------I am ATSAMD51--------\r\n");
    SERCOM2_USART_Write(menu,sizeof(menu));
    while ( true )
    {
        /* Maintain state machines of all polled MPLAB Harmony modules. */
        SYS_Tasks ( );
    }

    /* Execution should not come here during normal operation */

    return ( EXIT_FAILURE );
}


/*******************************************************************************
End of File
*/

初始化代码:
void SYS_Initialize ( void* data )
{
    /* MISRAC 2012 deviation block start */
    /* MISRA C-2012 Rule 2.2 deviated in this file.  Deviation record ID -  H3_MISRAC_2012_R_2_2_DR_1 */

    NVMCTRL_Initialize( );

    STDIO_BufferModeSet();


  
    PORT_Initialize();

    CLOCK_Initialize();




    SERCOM2_USART_Initialize();

    EVSYS_Initialize();





    NVIC_Initialize();

    /* MISRAC 2012 deviation block end */
}

void SERCOM2_USART_Initialize( void )
{
    /*
     * Configures USART Clock Mode
     * Configures TXPO and RXPO
     * Configures Data Order
     * Configures Standby Mode
     * Configures Sampling rate
     * Configures IBON
     */
    SERCOM2_REGS->USART_INT.SERCOM_CTRLA = SERCOM_USART_INT_CTRLA_MODE_USART_INT_CLK | SERCOM_USART_INT_CTRLA_RXPO(0x0UL) | SERCOM_USART_INT_CTRLA_TXPO(0x0UL) | SERCOM_USART_INT_CTRLA_DORD_Msk | SERCOM_USART_INT_CTRLA_IBON_Msk | SERCOM_USART_INT_CTRLA_FORM(0x0UL) | SERCOM_USART_INT_CTRLA_SAMPR(0UL) ;

    /* Configure Baud Rate */
    SERCOM2_REGS->USART_INT.SERCOM_BAUD = (uint16_t)SERCOM_USART_INT_BAUD_BAUD(SERCOM2_USART_INT_BAUD_VALUE);

    /*
     * Configures RXEN
     * Configures TXEN
     * Configures CHSIZE
     * Configures Parity
     * Configures Stop bits
     */
    SERCOM2_REGS->USART_INT.SERCOM_CTRLB = SERCOM_USART_INT_CTRLB_CHSIZE_8_BIT | SERCOM_USART_INT_CTRLB_SBMODE_1_BIT | SERCOM_USART_INT_CTRLB_RXEN_Msk | SERCOM_USART_INT_CTRLB_TXEN_Msk;

    /* Wait for sync */
    while((SERCOM2_REGS->USART_INT.SERCOM_SYNCBUSY) != 0U)
    {
        /* Do nothing */
    }


    /* Enable the UART after the configurations */
    SERCOM2_REGS->USART_INT.SERCOM_CTRLA |= SERCOM_USART_INT_CTRLA_ENABLE_Msk;

    /* Wait for sync */
    while((SERCOM2_REGS->USART_INT.SERCOM_SYNCBUSY) != 0U)
    {
        /* Do nothing */
    }
}
效果图:
3.jpg

使用特权

评论回复
丙丁先生| | 2022-12-26 04:22 | 显示全部楼层
SERCOM2_USART_Write(menu,sizeof(menu));这句话例程中没有是什么意思

使用特权

评论回复
丙丁先生| | 2022-12-28 11:33 | 显示全部楼层
串口助手收到为0是什么原因
IMG_20221228_105757.jpg

使用特权

评论回复
比神乐|  楼主 | 2022-12-28 15:21 | 显示全部楼层
丙丁先生 发表于 2022-12-26 04:22
SERCOM2_USART_Write(menu,sizeof(menu));这句话例程中没有是什么意思

你·没注意看吗
char menu[]="How Are you?";

menu是个字符串

使用特权

评论回复
比神乐|  楼主 | 2022-12-28 15:21 | 显示全部楼层
丙丁先生 发表于 2022-12-28 11:33
串口助手收到为0是什么原因

不太清楚

使用特权

评论回复
tpgf| | 2023-1-4 16:49 | 显示全部楼层
这个评估板能支持最多多少路串口发送数据呀

使用特权

评论回复
paotangsan| | 2023-1-4 16:58 | 显示全部楼层
这种现成的评估板 他们在做串口走线的时候会有注意到抗干扰吗

使用特权

评论回复
比神乐|  楼主 | 2023-1-4 17:02 | 显示全部楼层
paotangsan 发表于 2023-1-4 16:58
这种现成的评估板 他们在做串口走线的时候会有注意到抗干扰吗

不清楚

使用特权

评论回复
比神乐|  楼主 | 2023-1-4 17:05 | 显示全部楼层
tpgf 发表于 2023-1-4 16:49
这个评估板能支持最多多少路串口发送数据呀

我看了看,大概四个串口。

使用特权

评论回复
renzheshengui| | 2023-1-5 08:26 | 显示全部楼层
这四个串口之间引脚有复用的情况吗 可以进行重定位吗

使用特权

评论回复
wakayi| | 2023-1-5 09:09 | 显示全部楼层
如果不跑系统的话 可以实现四个串口同时收发数据吗

使用特权

评论回复
wowu| | 2023-1-5 09:19 | 显示全部楼层
一个串口能达到的最大的数据传输速度 在使用两个串口的时候还能达到吗

使用特权

评论回复
xiaoqizi| | 2023-1-5 10:02 | 显示全部楼层
每包数据的发送间隔是自动控制的还是人为延时的呢

使用特权

评论回复
比神乐|  楼主 | 2023-1-5 13:17 | 显示全部楼层
renzheshengui 发表于 2023-1-5 08:26
这四个串口之间引脚有复用的情况吗 可以进行重定位吗

这个不清楚,估计可以复用吧

使用特权

评论回复
比神乐|  楼主 | 2023-1-5 13:18 | 显示全部楼层
wakayi 发表于 2023-1-5 09:09
如果不跑系统的话 可以实现四个串口同时收发数据吗

恐怕做不到同时吧

使用特权

评论回复
比神乐|  楼主 | 2023-1-5 13:18 | 显示全部楼层
wowu 发表于 2023-1-5 09:19
一个串口能达到的最大的数据传输速度 在使用两个串口的时候还能达到吗

够呛

使用特权

评论回复
比神乐|  楼主 | 2023-1-5 13:19 | 显示全部楼层
xiaoqizi 发表于 2023-1-5 10:02
每包数据的发送间隔是自动控制的还是人为延时的呢

如果用发送中断,应该可以自动控制

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

337

主题

3057

帖子

7

粉丝