打印
[应用相关]

ADX345获取加速度在LCD显示

[复制链接]
385|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ADX345使用IIC读取数据
IIC配置方法一:使用IO模拟IIC操作彩屏显示使用之前修改好的ili9325的程序(lcd.c,lcd.h,gui.c,gui.h),在main.c中直接添加lcd_init()初始化函数,就可以使用lcd和gui中的绘图或者显示字符的函数了,不过需要注意要重定向printf输出到串口。
IIC使用IO模拟,创建IIC初始化和读写函数





使用特权

评论回复
沙发
sensitivity|  楼主 | 2020-5-17 10:01 | 只看该作者
ADX345的相关操作
ADX345初始化操作
查看器件 ID。ADXL345 的 ID 寄存器为 0x00

设置 ADXL345 存储数据的方式和通信方式。寄存器地址为:0x31。

设置数据的输出速率设置的是 BW_RATE 寄存器,地址为:0x2C。

设置测量模式和链接模式

设置不启用中断,设置 INT_ENABLE 寄存器,设置它不使用中断模式。

初始化偏移量,设置 OFSX 寄存器、OFSY 寄存器、OFSZ 寄存器。

使用特权

评论回复
板凳
sensitivity|  楼主 | 2020-5-17 10:02 | 只看该作者
读寄存器操作
1) 发送起始信号

2) 发送 I2C 写器件地址

3) 等待应答

4) 发送 I2C 要读的寄存器地址

5) 等待应答

6) 发送起始信号

7) 发送 I2C 读器件地址

8) 等待应答

9) 接收返回数据

10) 发送结束信号

使用特权

评论回复
地板
sensitivity|  楼主 | 2020-5-17 10:02 | 只看该作者
写寄存器操作
1) 发送起始信号

2) 发送 I2C 写器件地址

3) 等待应答

4) 发送要写入的寄存器地址

5) 等待应答

6) 发送要写入的数据

7) 等待应答

8) 发送结束信号

使用特权

评论回复
5
sensitivity|  楼主 | 2020-5-17 10:03 | 只看该作者
注意读到的为8位,需要改成16位

uint8_t readValue[6];

|

*xValue = (uint16_t)(readValue[1] << 8) + readValue[0];

*yValue = (uint16_t)(readValue[3] << 8) + readValue[2];

*zValue = (uint16_t)(readValue[5] << 8) + readValue[4];

使用特权

评论回复
6
sensitivity|  楼主 | 2020-5-17 10:04 | 只看该作者
STM32CubeMX配置

使用特权

评论回复
7
sensitivity|  楼主 | 2020-5-17 10:04 | 只看该作者
需要添加得到文件

lcd
void LCD_Init(void);

void LCD_DisplayOn(void);

void LCD_DisplayOff(void);

void LCD_Clear(uint16_t Color);

void LCD_SetCursor(uint16_t Xpos, uint16_t Ypos);

void LCD_DrawPoint(uint16_t x,uint16_t y);//画点

uint16_t  LCD_ReadPoint(uint16_t x,uint16_t y); //读点

void LCD_DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);

void LCD_DrawRectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);

void LCD_SetWindows(uint16_t xStar, uint16_t yStar,uint16_t xEnd,uint16_t yEnd);

void LCD_DrawPoint_16Bit(uint16_t color);

uint16_t LCD_RD_DATA(void);//读取LCD数据

void LCD_WriteReg(uint16_t LCD_Reg, uint16_t LCD_RegValue);

void LCD_WR_DATA(uint16_t data);

uint16_t LCD_ReadReg(uint8_t LCD_Reg);

void LCD_WriteRAM_Prepare(void);

void LCD_WriteRAM(uint16_t RGB_Code);

uint16_t LCD_ReadRAM(void);

uint16_t LCD_BGR2RGB(uint16_t c);

void LCD_SetParam(void);

使用特权

评论回复
8
sensitivity|  楼主 | 2020-5-17 10:05 | 只看该作者
gui

void GUI_DrawPoint(uint16_t x,uint16_t y,uint16_t color);

void LCD_Fill(uint16_t sx,uint16_t sy,uint16_t ex,uint16_t ey,uint16_t color);

void LCD_DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);

void LCD_DrawRectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);

void Draw_Circle(uint16_t x0,uint16_t y0,uint16_t fc,uint8_t r);

void LCD_ShowChar(uint16_t x,uint16_t y,uint16_t fc, uint16_t bc, uint8_t num,uint8_t size,uint8_t mode);

void LCD_ShowNum(uint16_t x,uint16_t y,uint32_t num,uint8_t len,uint8_t size);

void LCD_Show2Num(uint16_t x,uint16_t y,uint16_t num,uint8_t len,uint8_t size,uint8_t mode);

void LCD_ShowString(uint16_t x,uint16_t y,uint8_t size,uint8_t *p,uint8_t mode);

void GUI_DrawFont16(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, uint8_t *s,uint8_t mode);

void GUI_DrawFont24(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, uint8_t *s,uint8_t mode);

void GUI_DrawFont32(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, uint8_t *s,uint8_t mode);

void Show_Str(uint16_t x, uint16_t y, uint16_t fc, uint16_t bc, uint8_t *str,uint8_t size,uint8_t mode);

使用特权

评论回复
9
sensitivity|  楼主 | 2020-5-17 10:05 | 只看该作者
iic

void IIC_Config(void);

void IIC_Start(void);

void IIC_Stop(void);

void IIC_SendData(uint8_t dat);

uint8_t IIC_ReceiveData(uint8_t ack);

int8_t IIC_WaitAck(void);

使用特权

评论回复
10
sensitivity|  楼主 | 2020-5-17 10:06 | 只看该作者
在mian函数中添加显示最终结果的程序,注意将获得的变量存入数组中,这样就可以使用原有函数显示变量了。

使用特权

评论回复
11
sensitivity|  楼主 | 2020-5-17 10:06 | 只看该作者

作者:停下浮躁的心
链接:https://www.jianshu.com/p/f38bf5065826
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

使用特权

评论回复
12
xiaoqizi| | 2020-6-4 16:53 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
13
木木guainv| | 2020-6-4 16:56 | 只看该作者
问一下 这种屏幕可以调节亮度吗

使用特权

评论回复
14
磨砂| | 2020-6-4 16:56 | 只看该作者
用io口模拟的比较稳定

使用特权

评论回复
15
晓伍| | 2020-6-4 16:57 | 只看该作者
为什么不用本身的iic总线呢

使用特权

评论回复
16
八层楼| | 2020-6-4 16:57 | 只看该作者
楼主辛苦了

使用特权

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

本版积分规则

9

主题

216

帖子

0

粉丝