用fsmc驱动外部sram,先写入sram一个数组,在读出来通过串口发回到xcom上

2019-07-20 18:48发布

用fsmc驱动外部sram,先写入sram一个数组,在读出来通过串口发回到xcom上,现在能发到xcom,但是得到的是乱码,请问各位大神是怎么回事??我从sram里读出来的数据放在是放在了哪里,这点不是很明白,是存在是stm32的内存里了,然后在发给xcom的吗??菜鸟一枚,望各位大神指点。谢谢
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"  
#include "sram.h"   
const u8 TEXT_Buffer[]={"STM32 TEST BUFFER"};
#define SIZE sizeof(TEXT_Buffer)                  
u32 testsram[250000] __attribute__((at(0X68000000)));
int main(void)
{        
        u8 key;                 
        u8 i=0;            
  u8 temp=0;               
        u8 datatemp[SIZE];
        u32 ts=0;
//        u32 FLASH_SIZE;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏ輶·Ö×é2
        delay_init(168);  //3õê¼»ˉÑóê±oˉêy
        uart_init(115200);                //3õê¼»ˉ′®¿ú2¨ìØÂêÎa115200
        LED_Init();                                        //3õê¼»ˉLED
        KEY_Init();                                        //°′¼ü3õê¼»ˉ
        FSMC_SRAM_Init();                        //3õê¼»ˉía2¿SRAM  
        for(ts=0;ts<250000;ts++)testsram[ts]=ts;//&#212;¤′&#230;2aê&#212;êy&#190;Y         
  while(1)
        {       
                key=KEY_Scan(0);//2&#187;&#214;§3&#214;á&#172;°′       
                if(key==KEY1_PRES)
                {

                        for(i=0;i<SIZE;i+=SIZE)
                        {
                                FSMC_SRAM_WriteBuffer(&*(u8*)TEXT_Buffer,i,1);
                               
                        }
                       printf("Write Finished! ");
                }
                 
                if(key==KEY2_PRES)//′òó&#161;&#212;¤′&#230;2aê&#212;êy&#190;Y
                {
                         delay_ms(10);
                         if(key==KEY2_PRES)
                         {
                                 FSMC_SRAM_ReadBuffer(&*(u8*)datatemp,i,1);
                                 for(ts=0;ts<SIZE;ts++)
                                 {
                                                USART_SendData(USART1,datatemp[ts]);
                                                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);                               
                                 }                                                        

                         }
                                          
                }
                else   
                i++;
                delay_ms(10);
                if(i==20)//DS0éá&#203;&#184;.
                {
                        LED0=!LED0;
                        LED1=0;
                        i=0;
                }
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-20 19:05
你数据格式都没弄清楚。。。。多学习学习基础知识,学习下什么是ASCII先
娇娇
2楼-- · 2019-07-20 22:05
 精彩回答 2  元偷偷看……
413526602
3楼-- · 2019-07-21 00:13
 精彩回答 2  元偷偷看……

一周热门 更多>