• 大小: 1.66MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-31
  • 语言: 其他
  • 标签: stm32f103  spi  flash  usb  

资源简介

本资源包含stm32f103 spi flash usb sd卡iic,tft液晶屏,触摸屏驱动 MP3解码播放,fc模拟器等等,全部源码,注译详细 正点原子原创

资源截图

代码片段和文件信息

#include “includes.h“	 
#include “3d.h“
#include “lcd.h“  
#include “sintbl.h“ 
#include “string.h“
#include “usart.h“
#include “malloc.h“  
//////////////////////////////////////////////////////////////////////////////////  
//代码转自MacroXu AVR S65 3D Project
//把原来的绝大部分浮点运算改为整形运算并将原来的sincos函数换为查表法以提高速度
//优化后速度提升约12倍
//ALIENTEK战舰STM32开发板
//3D 代码    
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//修改日期:2012/10/3
//版本:V1.0           
//////////////////////////////////////////////////////////////////////////////////     

//创建3D图形管理器 
//offsetx:x轴向的偏移
//offsety:y轴向的偏移
//offsetz:z轴向的偏移
//size:3D像素点的个数(每个占用14个字节)
_t3d_obj* t3d_creat(u16 offsetxu16 offsetyu16 offsetzu16 size) 
{
u8 res=0;
_t3d_obj* t3d_crt;   
t3d_crt=(_t3d_obj*)mymalloc(SRAMINsizeof(_t3d_obj));//分配管理器的内存
if(t3d_crt==NULL)return NULL;//内存分配不够.

t3d_crt->p3dbuf=(type_3d_pixel*)mymalloc(SRAMEXsizeof(type_3d_pixel)*size);//分配3D像素点的内存
if(t3d_crt->p3dbuf==NULL)res=1;//内存分配不够.
t3d_crt->p2dbuf=(type_2d_pixel*)mymalloc(SRAMEXsizeof(type_2d_pixel)*size);//分配2D像素点的内存
if(t3d_crt->p2dbuf==NULL)res=1;//内存分配不够.
t3d_crt->ang.x=0;
t3d_crt->ang.y=0;
t3d_crt->ang.z=0;
t3d_crt->dis.x=0;
t3d_crt->dis.y=0;
t3d_crt->dis.z=0;
t3d_crt->pixsize=0;   
t3d_crt->maxpixsize=size;
//坐标系偏移
t3d_crt->offx=offsetx;
t3d_crt->offy=offsety;
t3d_crt->offz=offsetz;

if(res)//创建失败
{
t3d_delete(t3d_crt);
return NULL;
}else return t3d_crt;//创建成功   
}
//删除一个3D管理器
void t3d_delete(_t3d_obj* t3d_del)
{
myfree(SRAMEXt3d_del->p2dbuf);
myfree(SRAMEXt3d_del->p3dbuf);
myfree(SRAMINt3d_del);
}
/////////////////////////////////////////////算法部分/////////////////////////////////
//查表发获得正弦值正弦值扩大1024倍取整.
//arg:角度   (单位:0.1度)
//返回值:正弦值(扩大1024倍取整)
signed short my_sin(s16 arg)
{
if(arg<0)
{    
arg=-arg;
arg=arg%3600;//周期总是0~360°
if(arg<=900)return -sintbl[arg];
else if(arg<=1800)return -sintbl[1800-arg];
else if(arg<=2700)return sintbl[arg-1800];
else return sintbl[3600-arg];
}else
{
arg=arg%3600;//周期总是0~360°
if(arg<=900)return sintbl[arg];
else if(arg<=1800)return sintbl[1800-arg];
else if(arg<=2700)return -sintbl[arg-1800];
else return -sintbl[3600-arg];
}
}
//查表发获得余弦值余弦值扩大1024倍取整.
//arg:角度   (单位:0.1度)
//返回值:余弦值(扩大1024倍取整)
signed short my_cos(s16 arg)
{
if(arg<0)arg=-arg;//转换为正数
arg=arg%3600;//周期总是0~360°
if(arg<=900)return sintbl[900-arg];
else if(arg<=1800)return -sintbl[arg-900];
else if(arg<=2700)return -sintbl[2700-arg];
else return sintbl[arg-2700];

//核心算法部分
//3d转2D函数 pangle-旋转角度,ptrandis-移动位置 ppixel-要转换的像素 ppreturn-转换后的2D值保存到这
//pangle:角度.单位为弧度而不是°.如果要用度表示的话需要乘以π/180
//ptrandis:移动位置(当前点所围绕操作的点的坐标3D像素点)
//ppixel:要转换的像素点(3D像素点)
//ppreturn:转换完成后的像素点(2D像素点)  
void t3d_pixel_transform(_t3d_obj* t3dxu16 pixindex)
{  
signed long lsinxlcosxlsinylcosylsinzlcosz;
signed long ltempxltempyltempz;
signed long ldxldyldz; 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       9048  2012-10-03 23:06  实验56 战舰STM32开发板综合实验\3D\3d.c

     文件       2665  2012-10-03 23:06  实验56 战舰STM32开发板综合实验\3D\3d.h

     文件       6601  2012-03-07 17:45  实验56 战舰STM32开发板综合实验\3D\sintbl.h

     文件       5323  2012-01-04 13:52  实验56 战舰STM32开发板综合实验\3D\texture.h

     文件       5528  2012-10-03 23:20  实验56 战舰STM32开发板综合实验\APP\3dplay.c

     文件        597  2012-10-03 23:20  实验56 战舰STM32开发板综合实验\APP\3dplay.h

     文件      10737  2012-10-03 23:20  实验56 战舰STM32开发板综合实验\APP\appplay.c

     文件       1354  2012-10-03 23:20  实验56 战舰STM32开发板综合实验\APP\appplay.h

     文件      22986  2012-10-03 23:20  实验56 战舰STM32开发板综合实验\APP\calculator.c

     文件       1314  2012-10-03 23:20  实验56 战舰STM32开发板综合实验\APP\calculator.h

     文件      13474  2012-10-05 23:00  实验56 战舰STM32开发板综合实验\APP\calendar.c

     文件       1603  2012-10-03 23:20  实验56 战舰STM32开发板综合实验\APP\calendar.h

     文件       8002  2012-10-03 23:20  实验56 战舰STM32开发板综合实验\APP\camera.c

     文件        626  2012-10-03 23:20  实验56 战舰STM32开发板综合实验\APP\camera.h

     文件      36550  2012-10-05 21:43  实验56 战舰STM32开发板综合实验\APP\common.c

     文件       4551  2012-10-03 23:08  实验56 战舰STM32开发板综合实验\APP\common.h

     文件       5231  2012-10-08 19:18  实验56 战舰STM32开发板综合实验\APP\ebook.c

     文件        584  2012-10-03 23:10  实验56 战舰STM32开发板综合实验\APP\ebook.h

     文件       6316  2012-10-08 13:02  实验56 战舰STM32开发板综合实验\APP\exeplay.c

     文件       1751  2012-10-04 14:57  实验56 战舰STM32开发板综合实验\APP\exeplay.h

     文件       6831  2012-10-03 23:13  实验56 战舰STM32开发板综合实验\APP\lyric.c

     文件       1879  2012-10-03 23:13  实验56 战舰STM32开发板综合实验\APP\lyric.h

     文件      28314  2012-10-04 14:17  实验56 战舰STM32开发板综合实验\APP\mp3player.c

     文件       3504  2012-10-03 23:11  实验56 战舰STM32开发板综合实验\APP\mp3player.h

     文件       6519  2012-10-04 10:52  实验56 战舰STM32开发板综合实验\APP\nesplay.c

     文件        761  2012-10-03 23:13  实验56 战舰STM32开发板综合实验\APP\nesplay.h

     文件       7047  2012-10-04 14:43  实验56 战舰STM32开发板综合实验\APP\notepad.c

     文件        787  2012-10-03 23:20  实验56 战舰STM32开发板综合实验\APP\notepad.h

     文件      15487  2012-10-08 14:43  实验56 战舰STM32开发板综合实验\APP\paint.c

     文件       1242  2012-10-03 23:20  实验56 战舰STM32开发板综合实验\APP\paint.h

............此处省略338个文件信息

评论

共有 条评论