大运彩票开户直营网: [综合信息] 【华大测评】华大HC32F460-EVB开发板篇一

永利游戏开户直营
171|11
楼主
本帖最后由 yinwuqing110 于 2020-7-20 00:58 编辑

     收到HC32F460-EVB开发板有半个月,前段时间由于外地出差,没有及时分享评测贴,实感抱歉,趁周末的时间,把玩了一下HC32F460-EVB开发板,该开发板采用HC32F460PETB作为主核心MCU。HC32F460系列是基于ARM Cortex-M4 32-bit RISC CPU,最高工作频率168MHz的高性能 MCU。Cortex-M4内核集成了浮点运算单元(FPU)和DSP,实现单精度浮点算术运算,支持所有ARM单精度数据处理指令和数据类型,支持完整DSP指令集。集成了MPU单元。HC32F460系列集成了高速片上存储器,包括最大512KB的Flash,最大192KB的 SRAM。集成了Flash访问加速单元,实现CPU在Flash上的单周期程序执行,集成了丰富的外设功能。关于HC32F460-EVB开发板的SDK包下载地址说明如下:  

     根据华大官方给出的命名规则,可知HC32F460PETB的性能是相当全面的
     
      收到板卡时,外形包装如下:

     拆开包装袋,看看主角的正视图

      然后将OLED模块,“黑匣子”拆下来

     看看板卡的背面,布线规范,四个脚用胶柱支撑固定,MCU旁边有明显PCB加线长的画板方法

    整个板子的功能框图如下

     引脚配置图如下

     模块的详细说明如下

     三个调试接口详情如下

       接着进入http://www.ib955.com/hdscmcu/hc32f460/archive/master.zip,下载好“hc32f460-master.zip”文件,解压后打开“hc32f460-master\hc32f460_sdk\驱动库及样例\hc32f46x_ddl\example\usart\uart_polling_rx_tx”工程,简单测试一下串口收发功能。开发板搭载串行通信接口模块(USART 4个单元,串行通信接口模块(USART)能够灵活地与外部设备进行全双工数据交换;本USART支持通用异步串行通信接口(UART),时钟同步通信接口,智能卡接口(ISO/IEC7816-3)。支持调制解调器操作(CTS/RTS操作),多处理器操作。实现UART的部分代码如下:
  1. #include "hc32_ddl.h"

  2. /*******************************************************************************
  3. * Local pre-processor symbols/macros ('#define')
  4. ******************************************************************************/
  5. /* USART channel definition */
  6. #define USART_CH                        (M4_USART3)

  7. /* USART baudrate definition */
  8. #define USART_BAUDRATE                  (115200ul)

  9. /* USART RX Port/Pin definition */
  10. #define USART_RX_PORT                   (PortE)
  11. #define USART_RX_PIN                    (Pin04)
  12. #define USART_RX_FUNC                   (Func_Usart3_Rx)

  13. /* USART TX Port/Pin definition */
  14. #define USART_TX_PORT                   (PortE)
  15. #define USART_TX_PIN                    (Pin05)
  16. #define USART_TX_FUNC                   (Func_Usart3_Tx)

  17. /*******************************************************************************
  18. * Local function prototypes ('static')
  19. ******************************************************************************/
  20. static void ClkInit(void);
  21. static void UsartRxErrProcess(void);

  22. /*******************************************************************************
  23. ** \brief Initialize Clock.
  24. **
  25. ** \param [in] None
  26. **
  27. ** \retval None
  28. **
  29. ******************************************************************************/
  30. static void ClkInit(void)
  31. {
  32.     stc_clk_xtal_cfg_t   stcXtalCfg;
  33.     stc_clk_mpll_cfg_t   stcMpllCfg;
  34.     en_clk_sys_source_t  enSysClkSrc;
  35.     stc_clk_sysclk_cfg_t stcSysClkCfg;

  36.     MEM_ZERO_STRUCT(enSysClkSrc);
  37.     MEM_ZERO_STRUCT(stcSysClkCfg);
  38.     MEM_ZERO_STRUCT(stcXtalCfg);
  39.     MEM_ZERO_STRUCT(stcMpllCfg);

  40.     /* Set bus clk div. */
  41.     stcSysClkCfg.enHclkDiv  = ClkSysclkDiv1;  /* Max 168MHz */
  42.     stcSysClkCfg.enExclkDiv = ClkSysclkDiv2;  /* Max 84MHz */
  43.     stcSysClkCfg.enPclk0Div = ClkSysclkDiv1;  /* Max 168MHz */
  44.     stcSysClkCfg.enPclk1Div = ClkSysclkDiv2;  /* Max 84MHz */
  45.     stcSysClkCfg.enPclk2Div = ClkSysclkDiv4;  /* Max 60MHz */
  46.     stcSysClkCfg.enPclk3Div = ClkSysclkDiv4;  /* Max 42MHz */
  47.     stcSysClkCfg.enPclk4Div = ClkSysclkDiv2;  /* Max 84MHz */
  48.     CLK_SysClkConfig(&stcSysClkCfg);

  49.     /* Switch system clock source to MPLL. */
  50.     /* Use Xtal as MPLL source. */
  51.     stcXtalCfg.enMode = ClkXtalModeOsc;
  52.     stcXtalCfg.enDrv = ClkXtalLowDrv;
  53.     stcXtalCfg.enFastStartup = Enable;
  54.     CLK_XtalConfig(&stcXtalCfg);
  55.     CLK_XtalCmd(Enable);

  56.     /* MPLL config. */
  57.     stcMpllCfg.pllmDiv = 1ul;
  58.     stcMpllCfg.plln = 50ul;
  59.     stcMpllCfg.PllpDiv = 4ul;
  60.     stcMpllCfg.PllqDiv = 4ul;
  61.     stcMpllCfg.PllrDiv = 4ul;
  62.     CLK_SetPllSource(ClkPllSrcXTAL);
  63.     CLK_MpllConfig(&stcMpllCfg);

  64.     /* flash read wait cycle setting */
  65.     EFM_Unlock();
  66.     EFM_SetLatency(EFM_LATENCY_5);
  67.     EFM_Lock();

  68.     /* Enable MPLL. */
  69.     CLK_MpllCmd(Enable);

  70.     /* Wait MPLL ready. */
  71.     while (Set != CLK_GetFlagStatus(ClkFlagMPLLRdy))
  72.     {
  73.     }

  74.     /* Switch system clock source to MPLL. */
  75.     CLK_SetSysClkSource(CLKSysSrcMPLL);
  76. }

  77. /*******************************************************************************
  78. ** \brief USART RX error process function.
  79. **
  80. ** \param [in] None
  81. **
  82. ** \retval None
  83. **
  84. ******************************************************************************/
  85. static void UsartRxErrProcess(void)
  86. {
  87.     if (Set == USART_GetStatus(USART_CH, UsartFrameErr))
  88.     {
  89.         USART_ClearStatus(USART_CH, UsartFrameErr);
  90.     }

  91.     if (Set == USART_GetStatus(USART_CH, UsartParityErr))
  92.     {
  93.         USART_ClearStatus(USART_CH, UsartParityErr);
  94.     }

  95.     if (Set == USART_GetStatus(USART_CH, UsartOverrunErr))
  96.     {
  97.         USART_ClearStatus(USART_CH, UsartOverrunErr);
  98.     }
  99. }

  100. /*******************************************************************************
  101. ** \brief  Main function of project
  102. **
  103. ** \param  None
  104. **
  105. ** \retval int32_t return value, if needed
  106. **
  107. ******************************************************************************/
  108. int32_t main(void)
  109. {
  110.     uint16_t u16RxData;
  111.     en_result_t enRet = Ok;
  112.     uint32_t u32Fcg1Periph = PWC_FCG1_PERIPH_USART1 | PWC_FCG1_PERIPH_USART2 | \
  113.                              PWC_FCG1_PERIPH_USART3 | PWC_FCG1_PERIPH_USART4;
  114.     const stc_usart_uart_init_t stcInitCfg = {
  115.         UsartIntClkCkNoOutput,
  116.         UsartClkDiv_1,
  117.         UsartDataBits8,
  118.         UsartDataLsbFirst,
  119.         UsartOneStopBit,
  120.         UsartParityNone,
  121.         UsartSamleBit8,
  122.         UsartStartBitFallEdge,
  123.         UsartRtsEnable,
  124.     };

  125.     /* Initialize Clock */
  126.     ClkInit();

  127.     /* Enable peripheral clock */
  128.     PWC_Fcg1PeriphClockCmd(u32Fcg1Periph, Enable);

  129.     /* Initialize USART IO */
  130.     PORT_SetFunc(USART_RX_PORT, USART_RX_PIN, USART_RX_FUNC, Disable);
  131.     PORT_SetFunc(USART_TX_PORT, USART_TX_PIN, USART_TX_FUNC, Disable);

  132.     /* Initialize UART */
  133.     enRet = USART_UART_Init(USART_CH, &stcInitCfg);
  134.     if (enRet != Ok)
  135.     {
  136.         while (1)
  137.         {
  138.         }
  139.     }

  140.     /* Set baudrate */
  141.     enRet = USART_SetBaudrate(USART_CH, USART_BAUDRATE);
  142.     if (enRet != Ok)
  143.     {
  144.         while (1)
  145.         {
  146.         }
  147.     }

  148.     /*Enable RX && TX function*/
  149.     USART_FuncCmd(USART_CH, UsartRx, Enable);
  150.     USART_FuncCmd(USART_CH, UsartTx, Enable);

  151.     while (1)
  152.     {
  153.         if (Set == USART_GetStatus(USART_CH, UsartRxNoEmpty))         /* Warit Rx data register no empty */
  154.         {
  155.             u16RxData = USART_RecData(USART_CH);

  156.             while (Reset == USART_GetStatus(USART_CH, UsartTxEmpty))  /* Warit Tx data register empty */
  157.             {
  158.             }

  159.             USART_SendData(USART_CH, u16RxData);
  160.         }

  161.         UsartRxErrProcess();
  162.     }
  163. }
复制代码
    串口打印的信息如下:


     实物连线图如下所示,此次就大略的分享到这里,后续再持续体验HC32F460-EVB开发板的高配置全功能性啦,感谢各位围观,欢迎吐槽,咱们后会有期。

HC32F460 EVB Introduction.pdf (932.55 KB, 下载次数: 4)
HC32F460系列的通用同步异步收发器USART Rev1.0.pdf (464.97 KB, 下载次数: 3)
HC32F460系列数据手册Rev1.1.pdf (2.15 MB, 下载次数: 4)

沙发
| 2020-7-31 08:30 | 只看该作者
核心板的外设资源很丰富呀,就是板子画的有点丑而已。
板凳
| 2020-8-3 17:02 | 只看该作者
HC32F460-EVB开发板给力呢。     
地板
| 2020-8-3 17:03 | 只看该作者
支持国产芯片。                       
5
| 2020-8-3 17:03 | 只看该作者
这个板子很棒。集成了丰富的外设功能
6
| 2020-8-3 17:03 | 只看该作者
HC32F460的频率多大呢?
7
| 2020-8-3 17:03 | 只看该作者
期待楼主多分享HC32F460的资料。   
8
| 2020-8-3 17:03 | 只看该作者
ARM Cortex-M4比DSP的速度快了。   
9
| 2020-8-3 17:04 | 只看该作者
没有完整的工程文件吗   
10
| 2020-8-3 17:04 | 只看该作者
                     
11
| 2020-8-3 17:04 | 只看该作者
现在的单片机的功能太强大了。   
12
| 2020-8-3 17:04 | 只看该作者
工作频率168MHz?低功耗吗?
扫描二维码,大运彩票开户直营网:随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

永利游戏开户直营 快速回复 返回顶部 返回列表
澳门嫖娼多少一次 世爵娱乐AP 爱棋牌 满堂彩网现金 澳门赌场怎么退筹码 去澳门要多少钱登入
众购彩票网游戏 鸿博彩票手机下载 568彩票网开户 众购彩票网开户直营网 海岸国际娱乐娱乐直营网
j8彩票官方 大通彩票网站直营网 6762彩票网官网 博乐彩票在线开户 彩18在线开户
皇冠足球官网hg0088 万家彩票开户直营网 澳彩网娱乐直营网 福彩快3投注平台平台直营网