打印

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

[复制链接]
5661|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
:L

使用特权

评论回复
板凳
hihu| | 2011-7-20 13:56 | 只看该作者
不太清楚呢

使用特权

评论回复
地板
hihu| | 2011-7-20 13:56 | 只看该作者
求高手

使用特权

评论回复
5
pananmao3760675| | 2011-7-20 14:00 | 只看该作者
:)

使用特权

评论回复
6
litianwu!|  楼主 | 2011-7-20 14:02 | 只看该作者
哪位高手看看呗

使用特权

评论回复
7
lixiaoxu2meng| | 2011-7-20 14:16 | 只看该作者
你一步一步的调  首先 向FLASH中写入一个固定的书 比如0x12,然后再读回来 显示 ,先把读写FLASH调试成功 在调别的,估计是你FLASH读写 没有成功

使用特权

评论回复
8
china_fog| | 2011-7-20 16:41 | 只看该作者
单步一调试就行了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

135

帖子

1

粉丝