STM32上通过232串口把数据写到外部FLASH中遇到点问题

[复制链接]
 楼主| litianwu! 发表于 2011-7-20 08:37 | 显示全部楼层 |阅读模式
本帖最后由 litianwu! 于 2011-7-20 08:47 编辑

今天在基于STM32的SPI实验时发现个问题,通过232串口把数据发到单片机中,用一个数组存放,然后再把数组中的数据写到外部FLASH , M25P40中,然后再把数据读出来显示,但屏上就是没显示,不知是怎么啦?大家帮忙看看。

[code]void USART1_IRQHandler(void)
{
u8 buf=0;
if(USART_GetITStatus(USART1, USART_IT_RXNE)==SET) //接收中断有效 ;
{
buf=(USART_ReceiveData(USART1)&0xFF); // 返回USARTx最近接收到的数据 ;
buff=buf;

USART_SendData(USART1,buf);
USART_ClearITPendingBit(USART1, USART_IT_RXNE); // 清除USART1的接收中断 ;
}
s++;
w=1;
}这是串口中断服务子函数。s,w为全局变量。


int main(void)
{
u8 lcd[8];
RCC_Configuration();//调用RCC配置函数
NVIC_Configuration();
GPIO_Configuration();
USART_Configuration();

lcd_init();//调用LCD1602初始化函数
lcd_clear ();//清屏
lcd_print_S (0,1,"Erase SPI FLASH ...");//显示字符串
FLASH_SPI_Config();
Delay_Ms(100);
lcd_clear ();
SST25SectorErase(0); //擦除 0~4095 地址之间的数据

lcd_print_S(0,0,"SPI_FLASH!");
printf_USART1("Communication success!\t");
while(1)
{
u8 i,z;
SST25Write(0,buff,10); //往E2PROM写数据
Delay_Ms(100);
SST25Read(0,Rx_Buffer,10); //从addr读64个字节到db_sst1
Delay_Ms(100);
lcd[0]=Rx_Buffer[0];
lcd[1]=Rx_Buffer[1];
lcd[2]=Rx_Buffer[2];
lcd[3]=Rx_Buffer[3];
Delay_Ms(50);
lcd_print_S (1,0,"data:");
lcd_print_S (1,5,lcd);
}
}这是主函数
 楼主| litianwu! 发表于 2011-7-20 11:26 | 显示全部楼层
hihu 发表于 2011-7-20 13:56 | 显示全部楼层
不太清楚呢
hihu 发表于 2011-7-20 13:56 | 显示全部楼层
求高手
pananmao3760675 发表于 2011-7-20 14:00 | 显示全部楼层
 楼主| litianwu! 发表于 2011-7-20 14:02 | 显示全部楼层
哪位高手看看呗
lixiaoxu2meng 发表于 2011-7-20 14:16 | 显示全部楼层
你一步一步的调  首先 向FLASH中写入一个固定的书 比如0x12,然后再读回来 显示 ,先把读写FLASH调试成功 在调别的,估计是你FLASH读写 没有成功
china_fog 发表于 2011-7-20 16:41 | 显示全部楼层
单步一调试就行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

135

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部