OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2622|回复: 4

关于串口与SPI的问题 求解

[复制链接]

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2015-11-17
在线时间
30 小时
发表于 2016-7-26 10:46:00 | 显示全部楼层 |阅读模式
1金钱
本来例程里是自己定义了一个数组,然后将这个数组写到W25Q64里面最后读出在液晶上显示,我做了一点修改,就是将要写入的数组换成了串口接收到的数据,然后写入W25Q64里面,程序如下:

while(1)
        {   
                res=USART_ReceiveData(USART1);

                if(USART_RX_STA&0x8000)
                {                                          
                        len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
                        printf("\r\n您发送的消息为:\r\n");
                        for(t=0;t<len;t++)
                        {
                                USART1->DR=USART_RX_BUF[t];
                                while((USART1->SR&0X40)==0);//等待发送结束
                        }
                        printf("\r\n\r\n");//插入换行
                        USART_RX_STA=0;
                }
                key=KEY_Scan(0);
                if(key==WKUP_PRES)        //WK_UP 按下,写入W25Q64
                {
                        LCD_Fill(0,170,239,319,WHITE);//清除半屏   
                        LCD_ShowString(60,170,200,16,16,"Start Write W25Q64....");
                        SPI_Flash_Write(&res,FLASH_SIZE-100,SIZE);                //从倒数第100个地址处开始,写入SIZE长度的数据
                        LCD_ShowString(60,170,200,16,16,"W25Q64 Write Finished!");        //提示传送完成
                }
                if(key==KEY0_PRES)        //KEY0 按下,读取字符串并显示
                {
                        LCD_ShowString(60,170,200,16,16,"Start Read W25Q64.... ");
                        SPI_Flash_Read(datatemp,FLASH_SIZE-100,SIZE);                                //从倒数第100个地址处开始,读出SIZE个字节
                        LCD_ShowString(60,170,200,16,16,"The Data Readed Is:  ");        //提示传送完成
                        LCD_ShowString(60,190,200,16,16,datatemp);                                        //显示读到的字符串
                }
                i++;
                delay_ms(10);
                if(i==20)
                {
                        LED0=!LED0;//提示系统正在运行       
                        i=0;
                }                  
        }
}

定义什么的基本没改,但是这样为什么我读W25Q64时并没有读出数据,求大神给讲解一下

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2015-9-15
在线时间
24 小时
发表于 2016-7-26 11:43:30 | 显示全部楼层
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2015-11-17
在线时间
30 小时
 楼主| 发表于 2016-7-26 12:16:03 | 显示全部楼层

我定义的一个 u8  类型变量   
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2015-11-17
在线时间
30 小时
 楼主| 发表于 2016-7-26 12:33:58 | 显示全部楼层
现在 能读出来了  但是  例如 我用串口助手发送list,却只能读出来i    我又懵了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-7-29 23:04:31 | 显示全部楼层
仿真看看。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 19:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表