[开发工具] 【华大测评】+ 3、串口发送测试

[复制链接]
 楼主| tlled 发表于 2020-7-9 22:48 | 显示全部楼层 |阅读模式


    使用串口3来实验串口通信。


    一、硬件电路图


    串口3连接的是USB-TTL芯片, 方便电脑USB连接。
   
    01.png


    二、程序代码


   2.1、uart.c
  1. <font size="3">#include "config.h"

  2. void UART_Init(void)
  3. {
  4.     uint16_t u16RxData;
  5.     en_result_t enRet = Ok;
  6.     uint32_t u32Fcg1Periph = PWC_FCG1_PERIPH_USART1 | PWC_FCG1_PERIPH_USART2 | \
  7.                              PWC_FCG1_PERIPH_USART3 | PWC_FCG1_PERIPH_USART4;
  8.     const stc_usart_uart_init_t stcInitCfg =
  9.     {
  10.         UsartIntClkCkNoOutput,
  11.         UsartClkDiv_1,
  12.         UsartDataBits8,
  13.         UsartDataLsbFirst,
  14.         UsartOneStopBit,
  15.         UsartParityNone,
  16.         UsartSamleBit8,
  17.         UsartStartBitFallEdge,
  18.         UsartRtsEnable,
  19.     };

  20.     PWC_Fcg1PeriphClockCmd(u32Fcg1Periph, Enable);
  21.     PORT_SetFunc(USART_RX_PORT, USART_RX_PIN, USART_RX_FUNC, Disable);
  22.     PORT_SetFunc(USART_TX_PORT, USART_TX_PIN, USART_TX_FUNC, Disable);

  23.     /* Initialize UART */
  24.     enRet = USART_UART_Init(USART_CH, &stcInitCfg);
  25.     if (enRet != Ok)
  26.     {
  27.         while (1)
  28.         {
  29.         }
  30.     }

  31.     /* Set baudrate */
  32.     enRet = USART_SetBaudrate(USART_CH, USART_BAUDRATE);
  33.     if (enRet != Ok)
  34.     {
  35.         while (1)
  36.         {
  37.         }
  38.     }

  39.     /*Enable RX && TX function*/
  40.     USART_FuncCmd(USART_CH, UsartRx, Enable);
  41.     USART_FuncCmd(USART_CH, UsartTx, Enable);
  42. }


  43. void UartSend(uint8_t dat)
  44. {
  45.     USART_SendData(USART_CH, dat);
  46.                 while(Reset == USART_GetStatus(USART_CH, UsartTxComplete));
  47. }
  48. </font>


    2.2、uart.h   
  1. <font size="3">#ifndef __UART_H
  2. #define __UART_H

  3. /* USART channel definition */
  4. #define USART_CH                        (M4_USART3)

  5. /* USART baudrate definition */
  6. #define USART_BAUDRATE                  (115200ul)

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

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


  15. void UART_Init(void);
  16. void UartSend(uint8_t dat);

  17. #endif
  18. </font>

    2.3、main.c
   
  1. <font size="3">int32_t main(void)
  2. {
  3.         uint16_t cn = 0;
  4.         ClkInit();
  5.         LED_Init();
  6.         UART_Init();

  7.         while(1)
  8.         {
  9.                 led_test();
  10.                 cn++;
  11.                 printf("HDSC-HC32F460 UART TEST!  cn=%d\r\n",cn);
  12.                         
  13.         };
  14. }</font>

    2.4、程序源码

    hc32f460_prj-20200709.rar (3.85 MB, 下载次数: 13)

    三、执行结果


    02.png

您需要登录后才可以回帖 登录 | 注册

本版积分规则

132

主题

701

帖子

7

粉丝
快速回复 返回顶部 返回列表