资源简介
本资源包含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\mp3pla
文件 3504 2012-10-03 23:11 实验56 战舰STM32开发板综合实验\APP\mp3pla
文件 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个文件信息
相关资源
- 用STM32F103做MP3
- Rtmp Flash播放器 3.5
- STM32F103 作为USB Visual Port时驱动问题
- TMS570LS1224片内FLASH读写例程自建工程
- FLASH小游戏源代码84512
- FLASHFTP简体中文破解版
- spi通信 (FPGA和单片机的通信模块)
- 原创代码,stm32f103单片机modbus485通讯
- Flash6 AS3.0 倒计时器源码
- STM32F103C8T6-LED例程
- 蓝牙hc程序实现APP与单片机STM32F103的通
- AT25SF081驱动
- flash作业计算机
- 经典算法flash动画演示
- STM32F103VET6驱动HC-SR04.rar
- AS608指纹模块和ESP8266wifi模块在STM32f
- STM32 RFID RC522 模拟SPI 读写卡程序
- 基于stm32的hmc5983和mpu6500的驱动程序
- FPGA单片机4线spi方式驱动OLED有机屏幕
- stm32f103 编码器测试程序
- 基于stm32f103和OV7725的监控拍照计数显
- STM32F103步进电机、压力传感器、温湿
- STM32F103 驱动四路MAX6675 采集温度 LC
- 18位8通道AD7608驱动程序.rar
- dsPIC33E/PIC24E系列中文手册-CN.pdf
- STM32F103无刷直流电机的转速闭环.zip
- STM32F103中文手册
- STM32F103 C8T6最小核心板 和HX711称重/压
- STM32f103+SIM900A-GSM模块通讯程序
- STM32F103单片机基于RS485总线的MODBUS通讯
评论
共有 条评论