您好!
我想实施基本的 UART。
这是我编写的程序。 我专注于如何通过使用%d、%s 等来显示不同变量的值。
在下面的程序中、我打印了一个基本字符串。
//
//包含的文件
//
#include "driverlib.h"
#include "device.h"
#include "board.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
//
//全局变量
//
uint16_t loopCount;
uint16_t errorCount;
//
//函数原型
//
void error();
空 uart (char[]、int);
//
//主菜单
//
空 main (void)
{
char send[256]="Hello Everyone!\n";
//
//初始化设备时钟和外设
//
device_init();
//
//通过禁用引脚锁定和启用上拉来设置 GPIO
//
device_initGPIO();
//
//初始化 PIE 和清除 PIE 寄存器。 禁用 CPU 中断。
//
interrupt_initModule();
//使用指向 shell 中断的指针初始化 PIE 矢量表
//服务例程(ISR)。
//
interrupt_initVectorTable();
//
//板初始化
//
Board_init();
//
//启用 CPU 中断
//
Interrupt_enableGlobal();
//
//发送一个以0开始的字符
//
// sendChar = 0;
//
//从0x00开始一直发送字符并经过0xFF。
//发送每个字节后,检查接收缓冲区中是否存在 cSCIorrect 值。
//
for (;;)
{
UART (send、sizeof (send));
}
}
void UART (字符名称[]、int A)
{
uint16_t sendChar;
uint16_t receivedChar;
uint8_t i;
标记每个;
for (i = 0;i<a;i++)
{
每个=名称[i];
sendChar =(uint16_t) each;
SCI_writeCharNonBlocking (mySCI0_BASE、sendChar);
//
//等待 RRDY/RXFFST = 1,FIFO 中有1个数据可用
//
while (SCI_getRxFIFOStatus (mySCI0_BASE)= SCI_FIFO_RX0)
{
;
}
//
//检查接收的字符
//
receivedChar = SCI_readCharBlockingFIFO (mySCI0_BASE);
//
//接收到的字符不正确
//
if (receivedChar!= sendChar)
{
asm (" ESTOP0");//在此处取消注释以停止测试
用于(;;);
}
}
}
//
//文件结尾
//
输出: