学习MSP432M0手册——第四节SDK和UART

一、本节内容

利用库函数编程。

1. 选择UART0串口,设置波特率位19200

2. 然后通过串口,利用串口调试助手,发送数据给自己的电脑。

二、原理讲解

本次实验先使用syscfg配置GPIO口,UART串口,然后使用直接生成的初始化代码,再设置一个字符串储存信息,用数据发送库函数发送数据,最后使用电脑的串口助手接受发送的信息。

三、库函数

部分寄存器:

学习MSP432M0手册——第一节GPIO输出功能

学习MSP432M0手册——第二节GPIO输入和输出

学习MSP432M0手册——第三节GPIO中断

库函数:

DL_GPIO_setPins();

 DL_GPIO_clearPins();

 DL_UART_transmitData

写入信息进入TX FIFO ,并发送。

需要提前确认TX FIFO是否是空的。

如果FIFO没有开启,数据会被储存在1字节的深度发送器(这个不知道是什么,有没有大佬来补充)

四、软件代码  

使用GPIO口是为了亮灯,可以不用。

int main(void)
{
    SYSCFG_DL_init();//总体初始化,使用syscfg配置GPIO口,UART串口之后可以调用这个直接初始化
    DL_GPIO_clearPins(GPIO_GRP_LED_PORT,GPIO_GRP_LED_PIN_LED1_PIN);//GPIO口清除
    int count=1;//设置变量count
    double str;//设置变量str
    char DATA[]="hello_world";//储存发送数据
    str=sizeof(DATA);//读取字符串长度
    while (1) {
        DL_UART_transmitData(UART_0_INST,count/10 + '0');//每次在发送内容前计数
        delay_cycles(100000);
        DL_UART_transmitData(UART_0_INST,count%10 + '0');//每次在发送内容前计数
        delay_cycles(100000);
        for(int i=0;i<str+1;i++)//for循环发送信息
        {
        DL_UART_transmitData(UART_0_INST,DATA[i]);
        delay_cycles(100000);
        }
        DL_UART_transmitData(UART_0_INST,'\r');//换行
        delay_cycles(100000);
        DL_UART_transmitData(UART_0_INST,'\n');
        delay_cycles(100000);
        DL_GPIO_setPins(GPIO_GRP_LED_PORT,GPIO_GRP_LED_PIN_LED1_PIN);//亮灯
        delay_cycles(15000000);
        DL_GPIO_clearPins(GPIO_GRP_LED_PORT,GPIO_GRP_LED_PIN_LED1_PIN);//灭灯
        delay_cycles(15000000);
        count++;
    }
}

本节介绍了使用syscfg配置GPIO口,UART串口,用数据发送库函数发送数据,使用电脑的串口助手接受发送的信息。 

注意:发送一个数据之后不延时有可能丢失数据,笔者每次发送延时了100000/32000000 second.

串口还有很多可以设置的地方,笔者会在后面章节讲到。

MSP432 低功耗高性能并存10.1 Digital I/O Introduction The digital I/O features include: • Independently programmable individual I/Os • Any combination of input or output • Individually configurable interrupts for ports (available for certain ports only) • Independent input and output data registers • Individually configurable pullup or pulldown resistors • Wake-up capability from ultra-low power modes (available for certain ports only) • Individually configurable high drive I/Os (available for certain I/Os only) Devices within the family may have up to eleven digital I/O ports implemented (P1 to P10 and PJ). Most ports contain eight I/O lines; however, some ports may contain less (see the device-specific data sheet for ports available). Each I/O line is individually configurable for input or output direction, and each can be individually read or written. Each I/O line is individually configurable for pullup or pulldown resistors. Certain ports have interrupt and wake-up capability from ultra-low power modes (see device specific data sheet for ports with interrupt and wake-up capability). Each interrupt can be individually enabled and configured to provide an interrupt on a rising or falling edge of an input signal. All interrupts are fed into an encoded Interrupt Vector register, allowing the application to determine which sub-pin of a port has generated the event. Individual ports can be accessed as byte-wide ports or can be combined into half-word-wide ports. Port pairs P1 and P2, P3 and P4, P5 and P6, P7 and P8, and so on, are associated with the names PA, PB, PC, PD, and so on, respectively. All port registers are handled in this manner with this naming convention. The main exception are the interrupt vector registers, for example, interrupts for ports P1 and P2 must be handled through P1IV and P2IV, PAIV does not exist. When writing to port PA with half-word operations, all 16 bits are written to the port. When writing to the lower byte of port PA using byte operations, the upper byte remains unchanged. Similarly, writing to the upper byte of port PA using byte instructions leaves the lower byte unchanged. When writing to a port that contains less than the maximum number of bits possible, the unused bits are don't care. Ports PB, PC, PD, PE, and PF behave similarly.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值