打印
[MCU]

【MSP432评测】 -- 2、串口0驱动输出

[复制链接]
604|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tlled|  楼主 | 2020-4-18 15:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 tlled 于 2020-4-18 15:37 编辑

    测试串口0输出信息。

    一、安装XDS110-ET驱动程序

    XDS110-ET带有串口,使用MSP432P401R的串口0输出。
    驱动下载地址:https://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds_software_package_download.html
    安装完成后会找到串口号。   

    二、硬件电路

   串口0使用的是P1.2和P1.3端口,可以连接XDS110-ET仿真器。
   
   
    三、程序
   
    3.1、main.c
#include "config.h"


/* Initializes Clock System */
void CS_init()
{
    /* Set the core voltage level to VCORE1 */
    MAP_PCM_setCoreVoltageLevel(PCM_VCORE1);

    /* Set 2 flash wait states for Flash bank 0 and 1*/
    MAP_FlashCtl_setWaitState(FLASH_BANK0, 2);
    MAP_FlashCtl_setWaitState(FLASH_BANK1, 2);

    /* Initializes Clock System */
    MAP_CS_setDCOCenteredFrequency(CS_DCO_FREQUENCY_48);
    MAP_CS_initClockSignal(CS_MCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1 );
    MAP_CS_initClockSignal(CS_HSMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1 );
    MAP_CS_initClockSignal(CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1 );
    MAP_CS_initClockSignal(CS_ACLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1);
}


int main(void)
{
    uint32_t i;
                MAP_WDT_A_holdTimer();
                MAP_Interrupt_disableMaster();
                CS_init();
                LED_Init();
                UART0_Init();
    while(1)
    {
                                UART0_transmitString( "www.21ic.com -- msp432p401r\r\n" );
                                for(i=1000000; i>0; i--);
    }
}

   3.2、uart.c

#include "config.h"


const eUSCI_UART_ConfigV1 uart0Config =
{
        EUSCI_A_UART_CLOCKSOURCE_SMCLK,          // SMCLK Clock Source
                                26,                                      // BRDIV = 26
        1,                                       // UCxBRF = 1
        0,                                       // UCxBRS = 0
        EUSCI_A_UART_NO_PARITY,                  // No Parity
        EUSCI_A_UART_LSB_FIRST,                  // LSB First
        EUSCI_A_UART_ONE_STOP_BIT,               // One stop bit
        EUSCI_A_UART_MODE,                       // UART mode
        EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION,  // Oversampling
        EUSCI_A_UART_8_BIT_LEN                  // 8 bit data length
};

void UART0_initGPIO(void)
{
    /* Selecting P1.2 and P1.3 in UART mode */
    MAP_GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P1,GPIO_PIN2 | GPIO_PIN3,
                                                                                                                                                                                                                GPIO_PRIMARY_MODULE_FUNCTION);
}

void UART0_Init(void)
{
                UART0_initGPIO();
    MAP_UART_initModule(EUSCI_A0_BASE, &uart0Config);   /* Configuring UART Module */
    MAP_UART_enableModule(EUSCI_A0_BASE);/* Enable UART module */

        return;
}

/* Transmits String over UART */
void UART0_transmitString( char *pStr )
{
        while( *pStr )
        {
                UART_transmitData(EUSCI_A0_BASE, *pStr );
                pStr++;
        }
}


  3.3、 uart.h
#ifndef FUN_UART_H_
#define FUN_UART_H_

void UART0_Init(void);
void UART0_transmitString( char *pStr );

#endif
   3.4、程序源码
    msp432p401r.rar (6.93 MB)

   四、执行结果

    串口输出数据:
   



使用特权

评论回复

相关帖子

沙发
21ic小喇叭| | 2020-4-20 14:43 | 只看该作者
感谢分享,奖励您500家园币

使用特权

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

本版积分规则

128

主题

694

帖子

6

粉丝