[PIC32/SAM] ATSAMD51 EVK评估板评测6串口发送

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

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

  10. char menu[]="How Are you?";
  11. // *****************************************************************************
  12. // *****************************************************************************
  13. // Section: Main Entry Point
  14. // *****************************************************************************
  15. // *****************************************************************************

  16. int main ( void )
  17. {
  18.    
  19.     /* Initialize all modules */
  20.     SYS_Initialize ( NULL );
  21.     printf("\r\n--------------I am ATSAMD51--------\r\n");
  22.     SERCOM2_USART_Write(menu,sizeof(menu));
  23.     while ( true )
  24.     {
  25.         /* Maintain state machines of all polled MPLAB Harmony modules. */
  26.         SYS_Tasks ( );
  27.     }

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

  29.     return ( EXIT_FAILURE );
  30. }


  31. /*******************************************************************************
  32. End of File
  33. */

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

  5.     NVMCTRL_Initialize( );

  6.     STDIO_BufferModeSet();


  7.   
  8.     PORT_Initialize();

  9.     CLOCK_Initialize();




  10.     SERCOM2_USART_Initialize();

  11.     EVSYS_Initialize();





  12.     NVIC_Initialize();

  13.     /* MISRAC 2012 deviation block end */
  14. }

  15. void SERCOM2_USART_Initialize( void )
  16. {
  17.     /*
  18.      * Configures USART Clock Mode
  19.      * Configures TXPO and RXPO
  20.      * Configures Data Order
  21.      * Configures Standby Mode
  22.      * Configures Sampling rate
  23.      * Configures IBON
  24.      */
  25.     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) ;

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

  28.     /*
  29.      * Configures RXEN
  30.      * Configures TXEN
  31.      * Configures CHSIZE
  32.      * Configures Parity
  33.      * Configures Stop bits
  34.      */
  35.     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;

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


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

  43.     /* Wait for sync */
  44.     while((SERCOM2_REGS->USART_INT.SERCOM_SYNCBUSY) != 0U)
  45.     {
  46.         /* Do nothing */
  47.     }
  48. }
效果图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 比神乐 发表于 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
每包数据的发送间隔是自动控制的还是人为延时的呢

如果用发送中断,应该可以自动控制
您需要登录后才可以回帖 登录 | 注册

本版积分规则

470

主题

3537

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部