dsp的库位置,以F1为例:
打开如下所示
使用如下几个文件
复制到项目文件夹
右击项目点击属性进行编辑,按照如下步骤添加路径和库
这里注意这里是M3的核,所以选ARM+MATH_CM3
这里库的名字编写规则为删去前面的lib还有后缀
效果如下:
需要使用串口,在cubemx中使能串口,然后添加串口重定向
#include "stdio.h"
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1, (uint8_t*)&ch,1,HAL_MAX_DELAY);
return ch;
}
因为涉及到很多浮点计算,这里使能浮点打印
添加头文件
在main函数中添加如下代码
int16_t i;
float32_t pSinVal;
float32_t pCosVal;
for(i = -180; i < 180; i++)
{
arm_sin_cos_f32(i, &pSinVal, &pCosVal);
printf("%f,%f\n",pSinVal,pCosVal);
}
打印结果如下,这里为了方便查看已经将串口接受的数据保存为文本
使用python进行图像绘制,查看效果
import matplotlib.pyplot as plt
f = open("test.txt",'r')
x = range(-180,180,1)
y_sin = []
y_cos = []
for line in f:
# print(line.split(',')[0])
line= line.strip('\n')
y_sin.append(float(line.split(',')[0]))
y_cos.append(float(line.split(',')[1]))
f.close()
plt.plot(x,y_sin,color = "green")
plt.plot(x,y_cos,color = "red")
plt.title("demo")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
结果如下,还是很好看的
查看打印时间,在代码执行前后添加变量记录
使用debug查看,其实这个时间都花在串口上了,我这边测试不加串口函数的话时间是16ms