OpenEdv-开源电子网

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

求助大神,IIC问题,用串口发送出。

[复制链接]

25

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2014-5-10
在线时间
0 小时
发表于 2014-5-20 17:10:19 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]#include "led.h" #include "delay.h" #include "key.h" #include "sys.h" #include "usart.h" #include "usmart.h" #include "24cxx.h" //ALIENTEK战舰STM32开发板实验22 //IIC 实验 //技术支持:www.openedv.com //广州市星翼电子科技有限公司 //要写入到24c02的字符串数组 const u8 TEXT_Buffer[]={"WarShipSTM32 IIC TEST"}; #define SIZE sizeof(TEXT_Buffer) int main(void) { u8 key; u16 i=0; u8 datatemp[SIZE]; delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(9600); //串口初始化为9600 KEY_Init(); LED_Init(); //LED端口初始化 usmart_dev.init(72); //初始化USMART AT24CXX_Init(); //IIC初始化 while(AT24CXX_Check())//检测不到24c02 { printf("24C02 Check Failed!"); delay_ms(500); printf("Please Check!      "); delay_ms(500); LED0B=!LED0B;//DS0闪烁 } printf("24C16 Ready!");    while(1) { key=KEY_Scan(0); if(key==KEY_UP)//KEY_UP按下,写入24C02 {    printf("Start Write 24C16...."); AT24CXX_Write(0,(u8*)TEXT_Buffer,SIZE); printf("24C16 Write Finished!");//提示传送完成 } if(key==KEY_DOWN)//KEY_DOWN按下,读取字符串并显示 {  printf("Start Read 24C16.... "); AT24CXX_Read(0,datatemp,SIZE); for(j=0;j<SIZE;j++)   printf("The Data Readed Is: %c",datatemp[j]);//提示传送完成 } i++; delay_ms(10); if(i==20) { LED1B=!LED1B;//提示系统正在运行 i=0; }    } }
然后LED0B一直闪烁,一直在那个while循环里,求大神帮忙,非常感谢
[/mw_shl_code]
愈挫愈勇
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-5-20 18:28:35 | 显示全部楼层
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

25

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-5-20 18:53:51 | 显示全部楼层
回复【2楼】Badu_Space:
---------------------------------
还有别的办法吗?我不太会仿真,一直没觉得仿真很重要,总是改完程序下进去看结果
愈挫愈勇
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-20 22:45:31 | 显示全部楼层
回复【3楼】非常完美:
---------------------------------
那就继续改程序看结果...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

25

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-5-21 08:37:18 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
好的,原子哥,既然不是低级错误,原子哥也没发现,那我就值得改,原子哥,我是一名控制的学生,您觉得我有必要把函数的实现看懂吗?还是只需要知道怎么用就可以了?
要看懂函数的实现还是很耗时间的呢,请原子哥指导
愈挫愈勇
回复

使用道具 举报

25

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-5-21 16:14:04 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子哥,还没找到错误,哥帮我下吧,我都在这里花了好多天时间了,还没有成果,心烦死了
我就是把你的用显示屏显示改为串口发送,别的都没有改动,就这样了,哎,心烦
愈挫愈勇
回复

使用道具 举报

10

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2013-12-3
在线时间
0 小时
发表于 2014-5-21 17:38:13 | 显示全部楼层
如果你是直接用原子哥的程序的话 那咋会一直停在检测AT24CXX呢 
如果是改了一些程序的话 那看一下你改的程序有没有影响到IIC
不用谢了……
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2013-11-8
在线时间
2 小时
发表于 2014-5-21 18:12:06 | 显示全部楼层
AT24CXX_Check()这个函数返回值为1才会循环在led哪里 是24c02有问题? 可以直接吧第一个循环注释掉 看看后面的读写情况 
无悔今生。
回复

使用道具 举报

25

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-5-21 18:30:23 | 显示全部楼层
回复【7楼】eling13:
---------------------------------
我驱动一点儿没改,就是把LCD那个文件删了,然后让数据显示在串口助手上
愈挫愈勇
回复

使用道具 举报

25

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-5-21 18:31:04 | 显示全部楼层
回复【8楼】ICBM核弹头:
---------------------------------
我注释过,然后串口助手上面显示乱码, 或者空
愈挫愈勇
回复

使用道具 举报

25

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-5-21 18:33:14 | 显示全部楼层
回复【8楼】ICBM核弹头:
---------------------------------
你可以把这段代码贴你工程里试试
愈挫愈勇
回复

使用道具 举报

8

主题

222

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2013-11-21
在线时间
0 小时
发表于 2014-5-21 18:48:12 | 显示全部楼层
回复【11楼】非常完美:
---------------------------------
没有问题,我试了。串口打印正常
回复

使用道具 举报

25

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-5-21 19:07:15 | 显示全部楼层
回复【12楼】苦竹2009:
---------------------------------
就是把主函数改成我这样?
愈挫愈勇
回复

使用道具 举报

8

主题

222

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2013-11-21
在线时间
0 小时
发表于 2014-5-21 19:14:59 | 显示全部楼层
回复【13楼】非常完美:
---------------------------------
完全把你的贴过来了,除了变量j,因为你那没定义
回复

使用道具 举报

25

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-5-21 19:38:53 | 显示全部楼层
回复【14楼】苦竹2009:
---------------------------------
恩,好吧,那就是我的问题了,哥,加你好友啊,我给你发信息了
愈挫愈勇
回复

使用道具 举报

25

主题

139

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2014-5-10
在线时间
0 小时
 楼主| 发表于 2014-5-21 19:51:38 | 显示全部楼层
回复【8楼】ICBM核弹头:
---------------------------------
Start Write 24C16....24C16 Write Finished!Start Read 24C16.... The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is:   ?  The Data Readed Is: 
串口助手是这么显示的,还是驱动有问题,那个方框就是空
愈挫愈勇
回复

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2013-11-8
在线时间
2 小时
发表于 2014-5-21 20:31:33 | 显示全部楼层
回复【16楼】非常完美:
---------------------------------
串口应该没问题hex 显示那空格就出来了 你将可以printf里面的%C改成%x试试
无悔今生。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-7 22:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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