完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我直接用IO口时序驱动,但是9325的ID一直读不出来,是不是读写函数有问题?希望有人能指导一下,谢谢
#include "share.h" /********************************************************************** 函数:ILI9325_Write_Reg() 函数作用:向ILI9325寄存器写入16bit数据 参数: uint16_t reg_addr-----------------------------------寄存器地址 uint16_t reg_value--------------------------------------16bit数据 返回值:无 上一版本:无 当前版本:1.0 作者:anobodykey 最后修改时间:2015-07-27 说明: ILI9325地址和数据都是使用PB口通信,因此PB口是 复用的,需先写寄存器地址再写入数据 **********************************************************************/ void ILI9325_Write_Reg(uint16_t reg_addr, uint16_t reg_value) { ILI9325_nCS_Set_Low;//拉低片选,使其有效 ILI9325_RS_Set_Low;//拉低RS信号,选择index寄存器 ILI9325_nWR_Set_Low;//拉低写使能,使其有效 GPIO_Write(GPIOD, reg_addr); //写寄存器地址 ILI9325_nWR_Set_High; ILI9325_RS_Set_High;//拉高RS信号,选择control寄存器 ILI9325_nWR_Set_Low; GPIO_Write(GPIOD, reg_value); ILI9325_nWR_Set_High; ILI9325_nCS_Set_High; } /********************************************************************** 函数:ILI9325_Read_Reg() 函数作用:从ILI9325寄存器读取16bit数据 参数: uint16_t reg_addr-----------------------------------寄存器地址 返回值:16bit数据 上一版本:无 当前版本:1.0 作者:anobodykey 最后修改时间:2015-07-27 说明: PB口工作在推挽输出模式,读取寄存器数据时需 设置成上拉输入模式才可读取 **********************************************************************/ uint16_t ILI9325_Read_Reg(uint16_t reg_addr) { GPIO_InitTypeDef GPIO_InitStruct; uint16_t reg_value = 0; ILI9325_nCS_Set_Low;//拉低片选,使其有效 ILI9325_RS_Set_Low;//拉低RS信号,选择index寄存器 ILI9325_nWR_Set_Low;//拉低写使能,使其有效 GPIO_Write(GPIOD,reg_addr );//写寄存器地址 printf("reg_addr=%Xrn",GPIO_ReadOutputData(GPIOD)); ILI9325_nWR_Set_High; ILI9325_RS_Set_High;//拉高RS信号,选择control寄存器 //将PD口设置为输入口读取寄存器数据 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_All; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOAtiNG; GPIO_Init(GPIOD, &GPIO_InitStruct); ILI9325_nRD_Set_Low; reg_value = GPIO_ReadInputData(GPIOD); printf("reg_value=%Xrn",reg_value); ILI9325_nRD_Set_High; // HAL_Delay(40); ILI9325_nCS_Set_High; //将PD口恢复成推挽输出模式 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_All; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOD, &GPIO_InitStruct); return reg_value; } /********************************************************************** 函数:HAL_ILI9325_MspInit() 函数作用:初始化与ILI9325 连接的io口资源 参数:无 返回值:无 上一版本:无 当前版本:1.0 作者:anobodykey 最后修改时间:2015-07-27 说明: MCU与ILI9325连接的io口均作为推挽输出口 **********************************************************************/ void HAL_ILI9325_MspInit(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE, ENABLE); /****配置LED所在外设的脚为输出****/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11| GPIO_Pin_12| GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //I/O口的方向 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //I/O口的最高输出速度 GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化外设PD的4、5、6、7端口 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //I/O口的方向 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //I/O口的最高输出速度 GPIO_Init(GPIOD, &GPIO_InitStructure); //初始化外设PD的4、5、6、7端口 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //I/O口的方向 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //I/O口的最高输出速度 GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化外设PD的4、5、6、7端口 } /********************************************************************** 函数:ILI9325_Init() 函数作用:ILI9325初始化 参数:无 返回值:无 上一版本:无 当前版本:1.0 作者:anobodykey 最后修改时间:2015-07-27 说明: **********************************************************************/ void ILI9325_Init(void) { HAL_ILI9325_MspInit(); ILI9325_nRST_Set_High; HAL_Delay(50); ILI9325_nRST_Set_Low;//复位ILI9325低电平有效 HAL_Delay(100); ILI9325_nRST_Set_High; //总线处于空闲状态 ILI9325_nCS_Set_High; ILI9325_RS_Set_High; ILI9325_nRD_Set_High; ILI9325_nWR_Set_High; HAL_Delay(50); }
|
|
相关推荐
1个回答
|
|
这个有很多原因,我当初读不出来就是和时钟太快有关,你看看你设置的时钟是不是大于芯片规定的范围了。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1107 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1055 浏览 2 评论
2159 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1253 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1678 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 15:01 , Processed in 0.943915 second(s), Total 77, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号