打印
[开发工具]

【华大测评】+ 3、串口发送测试

[复制链接]
834|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tlled|  楼主 | 2020-7-9 22:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式


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


    一、硬件电路图


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


    二、程序代码


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

void UART_Init(void)
{
    uint16_t u16RxData;
    en_result_t enRet = Ok;
    uint32_t u32Fcg1Periph = PWC_FCG1_PERIPH_USART1 | PWC_FCG1_PERIPH_USART2 | \
                             PWC_FCG1_PERIPH_USART3 | PWC_FCG1_PERIPH_USART4;
    const stc_usart_uart_init_t stcInitCfg =
    {
        UsartIntClkCkNoOutput,
        UsartClkDiv_1,
        UsartDataBits8,
        UsartDataLsbFirst,
        UsartOneStopBit,
        UsartParityNone,
        UsartSamleBit8,
        UsartStartBitFallEdge,
        UsartRtsEnable,
    };

    PWC_Fcg1PeriphClockCmd(u32Fcg1Periph, Enable);
    PORT_SetFunc(USART_RX_PORT, USART_RX_PIN, USART_RX_FUNC, Disable);
    PORT_SetFunc(USART_TX_PORT, USART_TX_PIN, USART_TX_FUNC, Disable);

    /* Initialize UART */
    enRet = USART_UART_Init(USART_CH, &stcInitCfg);
    if (enRet != Ok)
    {
        while (1)
        {
        }
    }

    /* Set baudrate */
    enRet = USART_SetBaudrate(USART_CH, USART_BAUDRATE);
    if (enRet != Ok)
    {
        while (1)
        {
        }
    }

    /*Enable RX && TX function*/
    USART_FuncCmd(USART_CH, UsartRx, Enable);
    USART_FuncCmd(USART_CH, UsartTx, Enable);
}


void UartSend(uint8_t dat)
{
    USART_SendData(USART_CH, dat);
                while(Reset == USART_GetStatus(USART_CH, UsartTxComplete));
}
</font>


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

/* USART channel definition */
#define USART_CH                        (M4_USART3)

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

/* USART RX Port/Pin definition */
#define USART_RX_PORT                   (PortE)
#define USART_RX_PIN                    (Pin04)
#define USART_RX_FUNC                   (Func_Usart3_Rx)

/* USART TX Port/Pin definition */
#define USART_TX_PORT                   (PortE)
#define USART_TX_PIN                    (Pin05)
#define USART_TX_FUNC                   (Func_Usart3_Tx)


void UART_Init(void);
void UartSend(uint8_t dat);

#endif
</font>

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

        while(1)
        {
                led_test();
                cn++;
                printf("HDSC-HC32F460 UART TEST!  cn=%d\r\n",cn);
                        
        };
}</font>

    2.4、程序源码

    hc32f460_prj-20200709.rar (3.85 MB)

    三、执行结果


   

使用特权

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

本版积分规则

125

主题

691

帖子

6

粉丝