TQRFSOC开发板47DR 创建hello world工程

打开vivado2020.0创建工程

下一步

设置工程名称与地址。勾选reate…选项,会创建一个新的文件夹,项目保存在其中,文件夹名称与工程名称相同

创建RTL工程à勾选不添加文件à下一步

选择芯片型号搜索:xczu47dr-ffve1156-2-i,选择芯片后下一步

完成创建工程

创建设计文件à设置名称à确定

添加设计文件à搜索ZYNQà双击添加

双击ZYNQ进行配置à点击Presetsà选择Apply…

使用本历程提供的预设文件直接导入,也可以直接根据原理图自行配置

预设文件在项目文件夹下的file文件夹中

根据项目不同使用的配置有所变化,需要根据实际情况进行配置。 点击OK完成配置。把模块的时钟连接起来。

右键设计模块à选择Gener…。提示弹窗点击Generate

再次右键设计模块à选择Crea…

此处两个选项,选择第一个Copy…,创建出来的文件可以被更改编译。选择第二个Let…,创建出的文件只供查看,修改后不参与编译。根据实际需求选择。由于此项目不需要进行更改选择第二个即可。

点击Gener…生成bit文件,后续弹出的串口选择确定。

导出硬件设计文件:FileàExport…àExport Eard…

弹窗默认下一步,选择保存的位置添加vitis文件夹,后续弹窗都默认。

打开Vitis。点击Toolsà选择Launch Vitis IDE

创建平台项目

设置平台名称

添加上面导出的XSA文件完成创建

需要先把平台项目编译成功后才才能创建应用项目。

创建HelloWorld工程FileàNewàApplic…

弹窗默认next,设置项目名称

选择Hello World工程à完成创建

打开helloworld.c文件à修改代码,如下图所示,修改完成后需要保存编译。

右键项目生成BOOT.bin文件

添加文件,选择在vivado中生成的bit文件。

选择添加的bit文件-->点击up向上移动一层至中间-->升级镜像文件。保存的镜像文件地址:vitis\hello_system\_ide\bootimage

为了方便使用,我把BOOT.bin文件复制到项目目录中的BootFile文件夹中。

把BOOT.bin文件复制到SD卡中插入开发板,启动模式设置为SD卡启动:↑↑↑↓。插入串口与电源。

在串口助手中查看输出内容。

通过网盘分享的文件:TQRFSOC开发板47DR 创建hello world工程
链接: https://pan.baidu.com/s/1r50Me6P1akXJWuU7Woeqig 提取码: 6ypp 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: USART3_printf 是一个自定义的函数,用于在STM32微控制器中通过USART3串口发送格式化字符串。该函数的代码如下: ```c #include "stm32f10x.h" #include "stdio.h" void USART3_printf(char* fmt, ...) { char buffer[256]; va_list args; va_start(args, fmt); vsnprintf(buffer, sizeof(buffer), fmt, args); va_end(args); int len = strlen(buffer); for (int i = 0; i < len; i++) { while (!(USART3->SR & USART_SR_TXE)); USART3->DR = buffer[i] & 0xFF; } } ``` 该函数使用了可变参数列表和标准C库中的`vsnprintf`函数,将格式化字符串转换成字符数组`buffer`。然后,该函数通过USART3串口发送`buffer`中的字符。 在使用该函数之前,需要先初始化USART3串口。例如,可以在`main`函数中添加以下代码: ```c int main(void) { // 初始化USART3串口 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStruct); USART_InitTypeDef USART_InitStruct; USART_InitStruct.USART_BaudRate = 115200; USART_InitStruct.USART_WordLength = USART_WordLength_8b; USART_InitStruct.USART_StopBits = USART_StopBits_1; USART_InitStruct.USART_Parity = USART_Parity_No; USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStruct.USART_Mode = USART_Mode_Tx; USART_Init(USART3, &USART_InitStruct); USART_Cmd(USART3, ENABLE); // 使用USART3_printf发送字符串 USART3_printf("Hello, world!\r\n"); while (1) { // ... } } ``` 该代码初始化了USART3串口,并使用`USART3_printf`函数发送了一个字符串。在实际应用中,可以根据需要修改串口的波特率、数据位、停止位等参数。 ### 回答2: USART3_printf是指通过USART3串口进行打印输出的函数。USART是通用同步/异步收发传输器(Universal Synchronous/Asynchronous Receiver Transmitter)的缩写。USART3是STM32系列单片机中的一个串口通信接口,用于与外部设备进行数据的收发。 USART3_printf函数是一种自定义的打印输出函数,它将要打印的数据通过USART3串口发送出去。一般情况下,串口打印输出是指将数据通过串口发送到上位机的串口工具上进行显示。但是由于不同的开发环境和不同的开发板,使用的串口通信工具可能不同,因此需要根据具体的开发环境和串口通信工具进行相应的设置。 USART3_printf函数可以通过更改参数来打印不同类型的数据,如字符串、数字等。具体的实现方式可能因使用的开发环境而有所不同,但一般来说,可以通过串口发送函数(如USART_SendData)将数据逐个发送出去,直到数据发送完毕。在发送数据之前,需要先初始化USART3串口通信设置,包括波特率、数据位、停止位、校验位等设置。 总之,USART3_printf函数是通过USART3串口将数据发送到上位机串口工具进行显示的一种打印输出方式,适用于STM32系列单片机。 ### 回答3: USART3_printf是指使用USART3串口发送数据的printf函数。 USART(Universal Synchronous/Asynchronous Receiver/Transmitter)是一种常见的串行通信接口,用于在微控制器或单片机与外设(如传感器、显示屏、无线模块等)之间进行数据传输。USART可以配置为同步模式或异步模式,其中异步模式常用于串口通信。 printf函数是C语言中的标准输出函数,用于将格式化的数据输出到终端或其他设备。通常,printf函数默认将输出打印到标准终端(如电脑终端或调试器的终端窗口)。 USART3_printf的使用场景通常是嵌入式系统或单片机开发中。通过配置USART3串口,并使用printf函数,可以方便地将调试信息、变量值、错误代码等输出到外部设备,如电脑终端或调试器。这样可以提高调试效率和开发速度,减少与外部设备的物理连接,方便实时调试和监控。 要使用USART3_printf功能,需要先配置USART3的串口参数,如波特率、数据位、停止位等。然后,在代码中使用printf函数,将需要输出的数据以指定的格式传递给printf函数。printf函数将根据格式化字符串,将数据转换为字符串并发送到USART3串口,实现数据的输出。 总之,USART3_printf是利用USART3串口发送数据的printf函数,可以方便地将数据输出到外部设备进行调试和监控。该功能在嵌入式系统或单片机开发中广泛应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值