I<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2C存储器读写程序设计(二)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一、程序设计流程分析
1、命令的添加:命令数改为8,命令字符串表添加i2cwr和i2crd。命令表初始化中添加命令处理函数。
2、在uartcmd.h中声明相应的函数,在uartcmd.c中实现相应的函数(先为空函数)。要记住:在help命令处理函数里面加上新命令显示。
3、接下来编程的原则是先构建框架,再进行不补充。
4、void UartCmdI2CWrite(void)的处理流程
定义一个256字节的缓冲区,此时接管串口字符的接收(从消息队列里获取),并进行判断,普通字符进行存储回显,如果是ESC则清除缓冲区,退出。如果是ENTER,则进行写入后退出。
5、void UartCmdI2CRead(void)的处理流程
定义一个256字节的缓冲区,将存储器的一页读到缓冲区,进行显示。
二、编写文件i2c.c和24c02.c
1、i2c.c的编写
(1)用于总线操作函数的编写,包括总线的起动、停止、应答、发送一个字节和接收一个字节的函数。
(2)该函数与stm32的结构密切相关。
2、24c02.c的编写
(1)24c02.c作为从设备,该驱动函数与具体的期间无关,调用底层的总线驱动函数完成对该设备的操作。
(2)主要编写的函数包括:E2P_ReadByte();E2P_ReadByteAdd(Address);E2P_ReadMultiByte(Address,Number),以及写存储器函数E2P_WriteByteAdd(Address);E2P_WrtieMultiByte(Address,Number)。等等。
三、i2c器件的初始化
1、首先在RCC_Config()函数中使能I2C的时钟。
2、声明函数I2C_Config(),并在初始化函数中调用。
3、编写I2C_Config()。
(1)对复用端口进行IO设置。
(2)设定外设时钟、配置时钟控制、配置上升时间。
(3)起动外设。
现在框架已经建立了,明天有时间进行填充。
文章评论(0条评论)
登录后参与讨论