这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » tsy040501 ARM DIY进程贴(LCD刷屏和显示字母代码)

共59条 4/6 |‹ 1 2 3 4 5 6 跳转至
助工
2012-05-20 11:47:40     打赏
31楼
利用TIM定时器输出比较模式控制LED等的闪烁:用输出比较模式控制产生通道1和通道2的频率不同产生NVIC中断进而翻转LED灯引脚的电平
视频如下:


通过观察视频中LED灯的闪烁情况可以发现:
LED1_FRQ:LED2_FRQ = 1 : 2 ; 

助工
2012-05-20 12:22:05     打赏
32楼

定时器输出比较模式关键代码:
——回复可见内容——


中断函数中的代码,当通道中断时必须将LED灯电平翻转,才能看到结果;中断向量嵌套的初始化为TIM2全局中断
PS:这次的输出比较模式花了很长一段时间才隐约有点感觉,确实有点不容易!

助工
2012-05-21 22:44:29     打赏
33楼
Note: In this driver, basic read and write functions (sEE_ReadBuffer()
  *                and sEE_WritePage()) use the DMA to perform the data transfer
  *                to/from EEPROM memory
(except when number of requested data is
  *                equal to 1). Thus, after calling these two functions, user
  *                application may perform other tasks while DMA is transferring
  *                data. The application should then monitor the variable holding
  *                the number of data in order to determine when the transfer is
  *                completed (variable decremented to 0). Stopping transfer tasks
  *                are performed into DMA interrupt handlers (which are integrated
  *                into this driver).


学习I2C总线,看到这些,顺便分享下~表示英文不好,看得有点费力

助工
2012-05-22 08:56:53     打赏
34楼
EEPROM功能实现分三步:
1、初始化
2、对ROM进行写操作
3、对ROM进行读操作

24LC02(DATASHEET): 256 X 8 byte; 3根地址线

助工
2012-05-23 23:33:06     打赏
35楼
又考完一科~我回来了~

助工
2012-05-24 11:34:50     打赏
36楼

24LC02读写过程

论坛好冷吖~大伙都去哪了?

助工
2012-05-27 15:39:35     打赏
37楼
EEPROM读不出来,写不进去~

助工
2012-05-28 12:23:00     打赏
38楼

EEPROM读写真是费神:
由于对通用同步异步收发器还没有概念,因此,EEPROM的读写通过LED灯的显示表征读出数据(表示范围0~15)


先分享用到的资料
24C02的数据手册:24C02下载(中文版)

助工
2012-05-28 23:35:46     打赏
39楼
本次实现了一个字节的读写
一、写数据顺序

助工
2012-05-28 23:39:55     打赏
40楼

写部分代码:
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY));

 I2C_GenerateSTART(I2C1, ENABLE);//发送起始信号
 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));//检测EV5

 I2C_Send7bitAddress(I2C1, 0xa0, I2C_Direction_Transmitter);//发送从设备地址并设置方向
 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));//检测EV6

 I2C_SendData(I2C1, 0x05);//发送地址
 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));//检测EV8

 I2C_SendData(I2C1, 0x05);//发送写数据
 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));//检测EV8

 I2C_GenerateSTOP(I2C1, ENABLE);//发送停止信号

读代码:
while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));//检测EV5

 I2C_AcknowledgeConfig(I2C1, DISABLE);

 I2C_Send7bitAddress(I2C1, 0xa0, I2C_Direction_Transmitter);//发送从设备地址并设置方向
 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));//检测EV6

 I2C_SendData(I2C1, 0x05);//发送读地址
 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));//检测EV8
                    
 I2C_GenerateSTART(I2C1, ENABLE);//发送起始信号
 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));//检测EV5

 I2C_Send7bitAddress(I2C1, 0xa0, I2C_Direction_Receiver);//从地址并设置方向
 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED));//检测EV7

 I2C_SendData(I2C1, 0x05);
 //while(I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
 while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED));//检测EV7

 I2C_GenerateSTOP(I2C1, ENABLE);//发送停止信号

 EPROM_Rec[0] = I2C_ReceiveData(I2C1);




共59条 4/6 |‹ 1 2 3 4 5 6 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]