GPIO设置篇 
一、GPIO有关的函数 
1、GPIO_ModeSetup: 函数原型:voidGPIO_ModeSetup(kal_uint16pin,kal_uint16conf_dada) 
功能:设置GPIO的工作模式是作为GPIO,还是作为专有功能接口。 
参数: pin:GPIO的pin脚号,对应于原理图上MTK62XX主CPU芯片的上的GPIO标号 
            conf_dada:值有0~3。其中0是表示作为GPIO模式,其他根据专有功能的不同进行设置。

2、GPO_InitIO 函数原型:voidGPIO_InitIO(chardirection,charport) 
功能:初始化GPIO的工作方向是作为输入,还是作为输出 
参数: direction:工作方向,0表示输入,1表示输出 
port:GPIO的pin脚

3、GPIO_ReadIO 函数原型:charGPIO_ReadIO(charport) 
功能:从GPIO读取数据 
参数: port:GPIO的pin脚

4、GPIO_WriteIO 函数原型:voidGPIO_WriteIO(kal_chardata,kal_charport)
功能:往GPIO写数据 
参数: data:1表示给高电平,0表示给低电平 
port:GPIO的pin脚 
备注:这些函数在Gpio.C中可以找到。

二、GPIO模式设置 GPIO口在系统上电的时候,有的是默认高电平,有的是默认低电平,这是MCU内部决定的,
软件无法更改,但是在系统开机过程中,会对GPIO进行初始化,MCU中有几个GPIO模式初始化寄存器,通过这个寄存器给GPIO设置初始模式。 
例如:以下这个寄存器就是用来设置0-7号GPIO的模工作模式的。 
这个初始化过程在Gpio_Drv.C中的函数GPIO_init()中,项目开始的时候,先要检查这个部分的模式设置是否正确。 
三、各个功能模块的GPIO设置 1、LCD背光,马达 有的LCD背光是靠GPIO进行控制的,有的则靠PMIC进行控制。
但不管那个方式进行控制,都只需修改Custom_equipment.c中的相关部分就可以了,
具体如下: 首先,检查数组 
1. GPIO_MAP_ENTRYgpio_map_tbl[]={   
2. {GPIO_VAILD,GPIO_PORT_24,netname[GPIO_LABEL_LCD_BACKLIGHT],NULL},   
3. };  将没有使用的GPIO,用GPIO_INVALID给屏蔽掉。 
然后,修改函数custom_cfg_gpio_set_level,在对应的GPIO类型上将控制函数添加进去即可。
比如: 
1. switch(gpio_dev_type)   
2. {   
3. caseGPIO_DEV_LED_MAINLCD:   
4. if(gpio_dev_level==LED_LIGHT_LEVEL0)//LEVEL0-LEVEL5是背光由若到强的控制,LEVEL0表示关闭背光

5. GPIO_WriteIO(GPIO_OFF,custom_cfg_outward_gpio_port(GPIO_LABEL_LCD_BACKLIGHT));   
6. else   
7. GPIO_WriteIO(GPIO_ON,custom_cfg_outward_gpio_port(GPIO_LABEL_LCD_BACKLIGHT));   
8. PWM2_level(gpio_dev_level);   
9. break;  
2、蓝牙 在文件bt_hw_define.h中参照原理图进行对应GPIO的修改。
 1. #defineBT_GPIO_RESET52//39//GPIO_39:PMICreset  
  2. #defineBT_GPIO_DSC36//;
  4//GPIO_4:todisconnectRFCommlink   
  3. #defineBT_GPIO_POWER4//12//GPIO_12:Power   
  4. #defineBT_GPIO_DATASELECT0//;
  3//GPIO_3:DataSelect  
  3、Camera 在文件Camera_hw.c和sccb.h中参照原理图进行对应GPIO的修改。 
  【Camera_hw.c】 
  1. #defineMODULE_POWER_PIN6//GPIONO.  
   2. #defineMODULE_RESET_PIN12//GPIONO.   
   3. #defineMODULE_CMPDN_PIN13//GPIONO.  【sccb.h】
    1. #defineSCCB_SERIAL_CLK_PIN8   
    2. #defineSCCB_SERIAL_DATA_PIN9  
    4、TouchPanel 在文件Touch_panel_spi.h中参照原理图进行对应GPIO的修改 
    1. #defineSPI_DIN_PIN1//17   
    2. #defineSPI_CLK_PIN8//20   
    3. #defineSPI_DOUT_PIN38//22   
    4. #defineSPI_CS_PIN9//23   
    5. #defineSPI_BUSY_PIN5//21  
    四、总结 GPIO的设置相对来讲比较简单,只要仔细参对原理图,基本上就可以将GPIO配置好。
    当然有些时候GPIO配置好了也达不到效果,就需要和硬件工程师一起来进行检测分析,
    测量对应电路的工作电压或电流,来判断工作是否正常。总之在前期的调试方面,
    多跟硬件工程师沟通、讨论、分析,会很快解决问题。

中断调试篇 中断调试一般来说包括以下几个方面,一一做简单介绍: 
1、中断号匹配 这个部分在文件eint_def.c中进行设置,参照原理图设置即可。 
2、中断触发方式的设置 在文件eint_def.c中,首先要对中断的触发响应时间进行设置,
是在数组变量custom_eint_sw_debounce_time_delay中。一般情况下这个部分是不用动的,
但有时候中断触发有问题的时候,这就是一个调试点。比如对于Touchpanel的中断,对应的响应时间一般是0,
如果不是0,就需要修改。 另外,因为中断触发分电平触发和边沿触发,
电平触发又分高电平触发和低电平触发,边沿触发又分为上升沿触发和下降沿触发,
因此先需要跟硬件工程师了解对应的中断触发方式,然后在对应的中断初始化的地方修改触发方式。 
3、中断处理流程调试 有时候中断设置好了,对应功能也不能正常使用,那么就需要调试中断处理流程了,
需要增加trace,一般我们会用系统带的trace函数kal_prompt_trace,有时候调试这个函数不能正常工作,
那么我们就用这个文件中的函数sys_print打印trace信息,要使用这个函数,需要在系统最开始启动的时候,
调用sys_uart_init进行初始化。这个函数库是在6228平台上做的,可能在其他平台上寄存器因为不同,
需要进行修改。 往往在调试的过程中,经常发现是给芯片供电方面出了问题。
因为有时候MTK给过来的代码,在他们的参考设计上是一种供电方式,但是在我们的设计上可能就是不一样了。
所以在找到芯片供电部分代码的时候,查找对应资料,看是否调用正常。 dbg_print怎么打开? 哪个宏控制呢?
 DRV_DEBUG打开后串口还是没有信息出来 1. make\drv\drv.def  中加入DRV_DEBUG 我一般在dbgprint.c里面直接修改 
 1. #if1//defDRV_DEBUG  
  2. #if1//(!defined(IC_MODULE_TEST))   
  3. {  
   4. charbuffer[50];  
    5. sprintf(buffer,"ERROR");   
    6. rmmi_write_to_uart((kal_uint8*)buffer,strlen(buffer),KAL_TRUE);   
    7. }

MTK:GPIO模式与设置相关推荐

  1. MTK:GPIO的配置与接口说明

    AD:  MTK平台驱动调试指南是本文要介绍的内容,主要是来了解并学习MTK应用平台上驱动调试的相关内容, 不多说,具体内容的实现来看本文详解.  GPIO设置篇  一.GPIO有关的函数  1.GP ...

  2. GPIO端口初始化设置,STM32F103点亮LED流水灯过程

    文章目录 一.STM32F103系列芯片地址映射和寄存器映射原理 1.什么是寄存器 2.地址映射和寄存器映射 3.寄存器地址查找 二.GPIO端口初始化设置 1.GPIO简介 2.配置时钟 3.输入输 ...

  3. STM32F103的映射的介绍、GPIO端口初始化设置和点流水灯详细操作

    文章目录 一.STM32F103的映射介绍 1.地址映射介绍 2.寄存器映射的介绍 二.GPIO端口的初始化设置 1.GIPO简介 2.时钟配置 3.输入输出模式设置 4.最大速率设置 三.实例--流 ...

  4. 物联网LoRa系列-19:LoRa终端--射频芯片SX1261 SX1262的6种操作模式及其设置

    本文根据SX1261/2芯片手册,阐述SX161/2射频芯片的8种操作模式及其设置. 目录: 一. MCU与射频芯片之间的操作接口 二.SX1261/2射频芯片的6种工作模式的含义 三. SX1261 ...

  5. 我的STM32自学之路(3)---预备知识(时钟树,GPIO模式)

    3.预备知识---时钟树,GPIO模式 本来是打算写跑马灯,可是发现外设配置时用到的时钟的确有点烦,所以这一节①理一理stm32的时钟系统②解释一下GPIO口各个模式是什么鬼(推挽.上拉等等).Let ...

  6. 关于DSP的GPIO的输入输出设置

    DSP 28335 的 GPIO的输入设置: GPIO的输入设置时,除了将此GPIO设置为输入之外,还需要将此GPIO口的电平拉高 //RXD3GpioCtrlRegs.GPBMUX2.bit.GPI ...

  7. oracle存档模式,Oracle开启归档模式并设置RMAN自动备份策略

    title: Oracle开启归档模式并设置RMAN自动备份策略 categories: 数据库 tags: - Oracle - RMAN timezone: Asia/Shanghai date: ...

  8. UGUI 锚点设置为四方扩充模式然后设置局部坐标为0将出现什么问题

    UGUI 锚点设置为四方扩充模式然后设置局部坐标为0将出现什么问题 UGUI 锚点设置为四方扩充模式然后设置局部坐标为0将出现什么问题? 情形:按钮A挂在主画布上.四方扩充模式.A的中心和画面中心不重 ...

  9. win10兼容模式怎么设置_win10护眼模式关不掉怎么办

    win10系统是一款非常值得使用的优秀系统!强大的智能是win10系统最让人喜欢的地方,各种各样贴心的设置可以让用户们在使用电脑的过程中得到最好舒适体验,但是一些小伙伴们并不知道怎么才能设置好想要的设 ...

最新文章

  1. QMainWindow多线程demo
  2. Java 静态内部类与非静态内部类【复习】
  3. ML之DS:仅需一行代码实现对某字段下的所有数值实现同一机制的改变或转换(比如全部转为str类型/全部取平方值)
  4. Markdown如何插入LaTeX公式?(在线LaTeX公式编辑器)
  5. python中grid函数_Python-Numpy模块Meshgrid函数
  6. 话里话外:流程管理评价的两大要素
  7. 关于mail-notification和apt-get
  8. 罗马数字与阿拉伯数字转换
  9. linux sh 按键精灵,按键精灵脚本代码教程
  10. office哪个版本最好用?都有哪些版本
  11. KGB知识图谱开拓行业应用新展图
  12. html清除span的text,使用jquery删除字符串中的span标签
  13. 加强银行余额调节表在财务管理中的作用
  14. Windows 11 有望支持苹果 M1 Mac?微软和高通的秘密协议即将到期
  15. springboot properties
  16. Codeforces - Bombs
  17. Weston 窗口管理(2)
  18. STM32H743开发板移植micropython并外扩32M的SQPI flash和32M的SDRAM
  19. html5details标签。
  20. 计算机连接苹果手机不能找到照片目录,iPhone与电脑连接后找不到照片怎么办?掌握这三个技巧,烦恼问题轻松解决!...

热门文章

  1. SE 2014 年4月21日(二)
  2. web前端基础之JS
  3. XCode 4创建ipa文件及提交应用程序
  4. Boost下载安装编译配置使用指南
  5. 我在CodePlex上建的开源项目:JavaScript Lexer and Parser(欢迎加入)
  6. Ubuntu下OpenResty 搭建高性能服务端
  7. Excel中,条件格式的跟多应用-「数字条」「图标集」
  8. HTML控制表格边线显示。
  9. 【Python-2.7】切片
  10. 网络管理与维护作业7