一、本节内容
利用库函数编程。
1. 选择UART0串口,设置波特率位19200
2. 然后通过串口,利用串口调试助手,发送数据给自己的电脑。
二、原理讲解
本次实验先使用syscfg配置GPIO口,UART串口,然后使用直接生成的初始化代码,再设置一个字符串储存信息,用数据发送库函数发送数据,最后使用电脑的串口助手接受发送的信息。
三、库函数
部分寄存器:
库函数:
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.
串口还有很多可以设置的地方,笔者会在后面章节讲到。