1、这里就要选择ARMMCU的GCC编译器了。
2、选择和MCU型号的绑定关系了,毕竟编译的库是给MCU项目所用,这里选择STM32F401CCU6的芯片。
2、添加源文件编写加法函数,编写加法函数进行编译。
3、编译成功,在工程目录里就可以找到编译好的库文件了,库文件的调用,配置一个对应MCU的基本工程,建立一个STM32F401CCU6的工程,并配置USART2作为串口输出。
4、保存后产生基本工程代码,重载printf函数方便打印输出,参考STM32UART串口printf函数应用及浮点打印代码空间节省。
5、在工程的core/inc/目录新建一个和库文件同名的头文件,将库文件libLib_C_Demo.a放置到工程的源文件目录core/src/,则在工程目录树立可以看到。
6、因为编译器默认只是识别C语言源代码(.c文件),还需要进行库文件的指定,这样编译器才会对二进制库文件(.a)进行识别。
7、先打开属性菜单,进行库文件所在目录和库文件名的添加指定,注意库文件名前需要加冒号,ApplyandClose后,就可以在工程文件里对库文件进行调用,首先要引入库文件的头文件。
8、在while循环里进行打印输出,打印数据为库函数调用的加法和,编译下载到STM32F401CCU6芯片后运行,通过串口工具观察打印结果,输出打印结果正确,库函数正常调用成功。
在 CubeIDE 中使用 STLink 仿真时,可以通过调试功能查看 printf 输出。具体步骤如下:在代码中添加需要输出的 printf 语句。
点击 CubeIDE 工具栏中的 Debug 按钮,进入调试模式。
在调试视图中,选择 Console 标签页。
在 Console 标签页中,点击 Show Console 按钮,打开 Console 窗口。
在 Console 窗口中,可以看到程序输出的 printf 信息。
需要注意的是,为了在 STLink 仿真中查看 printf 输出,需要在代码中添加一些初始化代码和配置。具体而言,需要在 main 函数中添加以下代码:
c
Copy code
#include "stdio.h"
#include "sys/unistd.h" // 包含 _write 函数原型
int _write(int file, char *ptr, int len)
{
HAL_UART_Transmit(&huart2, (uint8_t *)ptr, len, 0xFFFF)
return len
}
其中,_write 函数是一个系统调用,用于将 printf 输出重定向到串口。在上面的代码中,将 printf 输出重定向到了 USART2 串口,需要根据实际情况修改为对应的串口。
另外,需要在 CubeIDE 的工程配置中,将 printf 输出重定向到串口。具体而言,可以在工程属性中的 C/C++ Build - Settings - MCU GCC Compiler - Symbols 中添加下面两个宏定义:
c
Copy code
USE_FULL_ASSERT
PRINTF_USES_HAL_DRIVER
添加了这两个宏定义后,printf 输出就会自动重定向到串口,方便在 STLink 仿真中查看。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)