求助:STM32F407存储全局变量大数组,编译错误,恳请指点
STM32F407TFTLCD试验中存储类似几个A[3000],B[3000]这样的数组,定义为全局变量,编译错误提示无空间(no space),尝试用SRAM,更改option中IRAM的Start 0x68000000 Size 0xFFFFF,编译无错误,下载后黑屏, 尝试更改数组地址属性,
uint F, i,j,V,m=4,n=300;
double t,Dc[300]__attribute__((at(0X68000000))),B[30]__attribute__((at(0X68000000))),C[300]__attribute__((at(0X680002400))),G[300]__attribute__((at(0X68000000))),M[300]__attribute__((at(0X68000000))),r[300]__attribute__((at(0X68000000))),R[300]__attribute__((at(0X68000000))),d;
//加上地址属性时定义不在片内RAM了
void main(void)
{
B[0]=0;
C[0]=100;
G[0]=100;
M[0]=0;
M[1]=0;//Vy
M[2]=-10;//Vz
d=0.1;
t=0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
uart_init(115200); //初始化串口波特率为115200
LED_Init(); //明明屏蔽掉也没什么关系,为什么所有的显示都有这个初始化呢?
LCD_Init(); //初始化LCD FSMC接口
FSMC_SRAM_Init;
B[1]=B[0]+M[0]*t;//X(B[1])不断变化
C[1]=C[0]+M[1]*t;
下面是显示
while((0<Dc[i])&&(Dc[i]<=10))
{
A[i]=atan(Y/X);
A[i]=A[i]*180/PI;
if(i%1==0)
POINT_COLOR=BLACK; //画笔颜色:黑色
LCD_ShowString(30,20,210,24,16,"Angle:");//LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p),
POINT_COLOR=RED;
LCD_ShowxNum(30,50,A[i],8,16,0);
POINT_COLOR=BLACK;
LCD_ShowString(30,80,200,16,16,"Time: s");
POINT_COLOR=RED;
LCD_ShowxNum(70,80,t,1,16,0);
LED0=!LED0;
delay_ms(250);
编译错误, integer operation result is out of range,我需要定义的是15个类似A[3000]的全局变量,如果换成A[300]编译通过,TFTLCD显示,恳请大神帮忙指点
uint F, i,j,V,m=4,n=300;
double t,Dc[300]__attribute__((at(0X68000000))),B[30]__attribute__((at(0X68000000))),C[300]__attribute__((at(0X680002400))),G[300]__attribute__((at(0X68000000))),M[300]__attribute__((at(0X68000000))),r[300]__attribute__((at(0X68000000))),R[300]__attribute__((at(0X68000000))),d;
//加上地址属性时定义不在片内RAM了
void main(void)
{
B[0]=0;
C[0]=100;
G[0]=100;
M[0]=0;
M[1]=0;//Vy
M[2]=-10;//Vz
d=0.1;
t=0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
uart_init(115200); //初始化串口波特率为115200
LED_Init(); //明明屏蔽掉也没什么关系,为什么所有的显示都有这个初始化呢?
LCD_Init(); //初始化LCD FSMC接口
FSMC_SRAM_Init;
B[1]=B[0]+M[0]*t;//X(B[1])不断变化
C[1]=C[0]+M[1]*t;
下面是显示
while((0<Dc[i])&&(Dc[i]<=10))
{
A[i]=atan(Y/X);
A[i]=A[i]*180/PI;
if(i%1==0)
POINT_COLOR=BLACK; //画笔颜色:黑色
LCD_ShowString(30,20,210,24,16,"Angle:");//LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p),
POINT_COLOR=RED;
LCD_ShowxNum(30,50,A[i],8,16,0);
POINT_COLOR=BLACK;
LCD_ShowString(30,80,200,16,16,"Time: s");
POINT_COLOR=RED;
LCD_ShowxNum(70,80,t,1,16,0);
LED0=!LED0;
delay_ms(250);
编译错误, integer operation result is out of range,我需要定义的是15个类似A[3000]的全局变量,如果换成A[300]编译通过,TFTLCD显示,恳请大神帮忙指点
...全文
相关推荐
STM32F407_OLED显示
主要是在STM32F407上加载OLED显示屏的驱动,用于显示功能,该驱是从STM32F103平台上移植过来的,相关的错误已经完全排除,已经调试完成,可以正常显示,仅供参考,不当之处,还请指正。
STM32F407与OV2640实现的色块识别系统.zip
本文还有配套的精品资源,点击获取 简介:OV2640色块识别项目使用STM32F407微控制器和OV2640摄像头模块,构建了一个视觉识别系统,主要功能是检测红色色块。系统通过调整RGB值,可扩展到识别其他颜色,适用于物联网、机器人导航、自动化生产和智能监控等领域。本项目详细介绍了系统构成和实现原理,包括OV2640摄像头模块、STM32F407微控制器和颜色识别算法等关键...
STM32F407的HAL库和标准库工程
stm32f407工程模板
stm32f407_串口中断_stm32f407的串口中断_
使用stm32f407芯片,配置串口,串口中断,在中断服务程序中获取串口数据
STM32F407ZET6开发版原理图
STM32F407开发板原理图,花钱买的开发板,原理图商家给的,搞开发时候可以借鉴


其它技术问题
