RT1064学习笔记__函数初始化详解

函数详解

  • 一、 systick_delay_ms() 毫秒级延时函数
  • 二、zf_gpio.c函数
    • ① gpio_init() GPIO初始化
    • ② gpio_set() GPIO输出设置
    • ③ gpio_get() GPIO状态获取
    • ④ gpio_dir() GPIO方向设置
    • ⑤ gpio_toggle()GPIO电平反转
    • ⑥ gpio_interrupt_init()GPIO外部中断初始化
    • ⑦ 快速GPIO(略)
    • ⑧ 重要参数
  • 三、zf_pwm.c函数
    • ① pwm_init() PWM初始化
    • ② pwm_duty() PWM占空比设置
    • ③ pwm_freq() PWM频率设置
    • ④ 舵机调整相关方法
    • ⑤ 电机调速
  • 四、ips114_init()函数
    • ① ips114_clear()清屏函数
    • ② ips114_drawpoint()画点函数
    • ③ ips114_showchar()显示字符函数
    • ④ ips114_showstr()显示字符串函数
    • ⑤ ips114_display_chinese()汉字显示函数
  • 五、总钻风摄像头
    • ① ips114_displayimage032() 总钻风(灰度摄像头)液晶显示函数
    • ② ips114_displayimage032_zoom()总钻风(灰度摄像头)液晶缩放显示函数
    • ③ ips114_displayimage032_zoom1()总钻风(灰度摄像头)液晶缩放显示函数
  • 六、编码器
    • ①qtimer_quad_init()编码器初始化

Ps:主板为:逐飞RT1064 + 母板

一、 systick_delay_ms() 毫秒级延时函数

//------------------------------------------------------------------------------------
//  @brief      毫秒级systick延时函数
//  @param      ms              延时多少毫秒
//  @return     void
//  Sample usage:               systick_delay_ms(1000);   //延时1000毫秒
//-------------------------------------------------------------------------------------------------------------------
void systick_delay_ms(uint32 ms)
{
    //get_clk();//获取内核时钟便于后面设置
	while(ms--) systick_delay(SYSTICK_SOURCE_CLOCK/1000);
}

二、zf_gpio.c函数

① gpio_init() GPIO初始化

@param      pin         选择的引脚 (可选择范围由 common.h 内PIN_enum枚举值确定)
@param      dir         引脚的方向   输出:GPO   输入:GPI
@param      dat         引脚初始化时设置的电平状态,输出时有效 0:低电平 1:高电平
@param      pinconf     引脚配置(可设置参数由zf_iomuxc.h文件内PINCONF_enum枚举值确定,多个条件使用 | 相或)
@return     void
void pio_init(PIN_enum pin, GPIODIR_enum dir, uint8 dat, uint32 pinconf)
例子:gpio_init(D5, GPO, 1, GPIO_PIN_CONFIG);
*D5初始化为GPIO功能、输出模式、输出高电平、上拉47K IO速度100MHZ 驱动强度R0

② gpio_set() GPIO输出设置


@brief      GPIO输出设置
@param      pin         选择的引脚 (可选择范围由 common.h 内PIN_enum枚举值确定)
@param      dat         0:低电平 1:高电平
@return     void
Sample usage:           gpio_set(D5,1);//D5 输出高电平
void gpio_set(PIN_enum pin, uint8 dat)

③ gpio_get() GPIO状态获取

@brief      GPIO状态获取
@param      pin         选择的引脚 (可选择范围由 common.h 内PIN_enum枚举值确定)
@return     uint8       0:低电平 1:高电平
Sample usage:           uint8 status = gpio_get(D5);//获取D5引脚电平
uint8 gpio_get(PIN_enum pin)

④ gpio_dir() GPIO方向设置

@param      pin         选择的引脚 (可选择范围由 common.h 内PIN_enum枚举值确定)
@param      dir         引脚的方向   输出:GPO   输入:GPI
@return     void        
Sample usage:           gpio_dir(D5,GPO);//设置D5为输出模式
void gpio_dir(PIN_enum pin, GPIODIR_enum dir)

⑤ gpio_toggle()GPIO电平反转

@brief      GPIO 翻转
@param      pin         选择的引脚 (可选择范围由 common.h 内PIN_enum枚举值确定)
@return     void        
Sample usage:           gpio_toggle(D5);//D5引脚电平翻转

void gpio_toggle(PIN_enum pin)

⑥ gpio_interrupt_init()GPIO外部中断初始化

@param      pin         选择的引脚 (可选择范围由 common.h 内PIN_enum枚举值确定)
@param      trigger     中断触发方式 选择范围参见h文件TRIGGER_enum枚举
@param      pinconf     引脚配置 (可设置参数由zf_iomuxc.h文件内PINCONF_enum枚举值确定,多个条件使用 | 相或)
@return     void       
Sample usage:           gpio_interrupt_init(D5,RISING,GPIO_INT_CONFIG);//D5上升沿中断 
void gpio_interrupt_init(PIN_enum pin, TRIGGER_enum trigger, uint32 pinconf)

rigger     中断触发方式 选择范围参见h文件TRIGGER_enum枚举
typedef enum    // 枚举触发方式
{
    NO_INT,     //关闭中断模式
    LOW, 		//低
    HIGH,		//高
    RISING,		//上升
    FALLING,	//下降
    BOTH,       //仅PINT模块 可用此触发方式 (both 两者)
}TRIGGER_enum;

⑦ 快速GPIO(略)

//  @brief      快速GPIO初始化

⑧ 重要参数

#define GPIO_PIN_CONFIG         SPEED_100MHZ | DSE_R0 | PULLUP_47K | PULL_EN	
宏定义GPIO引脚的 默认配置,便于初始化GPIO时快速填写参数,如果需要其他参数可自行修改
#define FAST_GPIO_PIN_CONFIG    SPEED_200MHZ | DSE_R0 | PULLUP_47K | PULL_EN    
宏定义  快速  GPIO引脚的默认配置,便于初始化GPIO时快速填写参数,如果需要其他参数可自行修改
#define GPIO_INT_CONFIG         SPEED_100MHZ | HYS_EN | PULLUP_22K | PULL_EN    
宏定义GPIO  中断  引脚的默认配置,便于初始化GPIO中断时快速填写参数,如果需要其他参数可自行修改

三、zf_pwm.c函数

① pwm_init() PWM初始化

  @brief      PWM初始化
  @param      pwmch       PWM通道号及引脚
  @param      freq        PWM频率
  @param      duty        PWM占空比
  @return     void
  Sample usage:pwm_init(PWM1_MODULE0_CHB_D13, 50, 5000);   
初始化PWM1  子模块0 通道B 使用引脚D13  输出PWM频率50HZ   占空比为百分之 5000/PWM_DUTY_MAX*100						PWM_DUTY_MAX在fsl_pwm.h文件中 默认为50000 

void pwm_init(PWMCH_enum pwmch, uint32 freq, uint32 duty)

② pwm_duty() PWM占空比设置

@brief      PWM占空比设置
@param      pwmch       PWM通道号及引脚
@param      freq        PWM频率
@param      duty        PWM占空比
@return     void
Sample usage:pwm_duty(PWM1_MODULE0_CHB_D13, 5000);
			设置占空比为百分之 5000/PWM_DUTY_MAX*100
			PWM_DUTY_MAX在fsl_pwm.h文件中 默认为50000
void pwm_duty(PWMCH_enum pwmch, uint32 duty)

③ pwm_freq() PWM频率设置

@brief      PWM频率设置
@param      pwmch       PWM通道号及引脚
@param      freq        PWM频率
@param      duty        PWM占空比
@return     void
Sample usage:pwm_freq(PWM1_MODULE0_CHB_D13, 50);设置频率为50HZ   

void pwm_freq(PWMCH_enum pwmch, uint32 freq, uint32 duty)

④ 舵机调整相关方法

RT1064学习笔记__函数初始化详解_第1张图片

计算舵机位置舵机位置   (0.5ms - 2.5ms)ms/20ms * 5000050000是PWM的满占空比时候的值)
舵机最小值为1250   最大值为6250
这里加一百 减一百是为了缩小转动的区域,不要转动过于极限位置,有的舵机在极限位置容易卡住

⑤ 电机调速

四、ips114_init()函数

① ips114_clear()清屏函数


 @brief      液晶清屏函数
@param      color     		颜色设置
@return     void
@since      v1.0
Sample usage:               ips114_clear(YELLOW);// 全屏设置为黄色
void ips114_clear(uint16 color)

② ips114_drawpoint()画点函数

@brief      液晶画点
@param      x     	        坐标x方向的起点
@param      y     	        坐标y方向的起点
@param      dat       	    需要显示的颜色
@return     void
@since      v1.0
Sample usage:               ips114_drawpoint(0,0,RED);  //坐标0,0画一个红色的点
void ips114_drawpoint(uint16 x,uint16 y,uint16 color)

③ ips114_showchar()显示字符函数

@brief      液晶显示字符
@param      x     	        坐标x方向的起点 参数范围 0 -(IPS114_X_MAX-1)
@param      y     	        坐标y方向的起点 参数范围 0 -(IPS114_Y_MAX/16-1)
@param      dat       	   需要显示的字符 @return     void
@since      v1.0
Sample usage:               ips114_showchar(0,0,'x');//坐标0,0写一个字符x

void ips114_showchar(uint16 x,uint16 y,const int8 dat)

④ ips114_showstr()显示字符串函数

@brief      液晶显示字符
@param      x     	        坐标x方向的起点 参数范围 0 -(IPS114_X_MAX-1)
@param      y     	        坐标y方向的起点 参数范围 0 -(IPS114_Y_MAX/16-1)
@param      dat       	    需要显示的字符
@return     void
@since      v1.0
Sample usage:               ips114_showchar(0,0,'x');//坐标0,0写一个字符x

void ips114_showchar(uint16 x,uint16 y,const int8 dat)

⑤ ips114_display_chinese()汉字显示函数

@brief      汉字显示
@param      x       横坐标 0-(IPS114_X_MAX-1)
@param      y       纵坐标 0-(IPS114_Y_MAX-1)
@param      size    取模的时候设置的汉字字体大小,也就是一个汉字占用的点阵长宽为多少个点,取模的时候需要长宽是一样的。
@param      *p      需要显示的汉字数组
@param      number  需要显示多少位
@param      color   显示颜色
@return     void
@since      v1.0
Sample usage:		ips114_display_chinese(0,0,16,chinese_test[0],4,RED);//显示font文件里面的 示例
@Note       使用PCtoLCD2002软件取模		    阴码、逐行式、顺向   16*16

void ips114_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color)

五、总钻风摄像头

① ips114_displayimage032() 总钻风(灰度摄像头)液晶显示函数

@brief      总钻风(灰度摄像头)液晶显示函数
@param      *p     			图像数组地址
@param      width     	    图像宽度
@param      height     	   图像高度
@return     void
@since      v1.0
Sample usage:               ips114_displayimage032(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H)//显示灰度摄像头 图像
@note       图像的宽度如果超过液晶的宽度,则自动进行缩放显示。这样可以显示全视野

void ips114_displayimage032(uint8 *p, uint16 width, uint16 height) 

② ips114_displayimage032_zoom()总钻风(灰度摄像头)液晶缩放显示函数

@brief      总钻风(灰度摄像头)液晶缩放显示函数
@param      *p     			图像数组地址
@param      width     	    图像宽度
@param      height     	    图像高度
@param      dis_width       图像显示宽度  1 -(IPS114_X_MAX)
@param      dis_height      图像显示高度  1 -(IPS114_Y_MAX)
@return     void
@since      v1.0
Sample usage:               ips114_displayimage032_zoom(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, MT9V03X_CSI_W, MT9V03X_CSI_H)//显示灰度摄像头 图像
@note       图像的宽度如果超过液晶的宽度,则自动进行缩放显示。这样可以显示全视野
void ips114_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)

③ ips114_displayimage032_zoom1()总钻风(灰度摄像头)液晶缩放显示函数

@brief      总钻风(灰度摄像头)液晶缩放显示函数
@param      *p     			图像数组地址
@param      width     	    图像宽度
@param      height     	    图像高度
@param      start_x         设置显示起点的x轴坐标
@param      start_y     	设置显示起点的y轴坐标
@param      dis_width       图像显示宽度  1 -(IPS114_X_MAX)
@param      dis_height      图像显示高度  1 -(IPS114_Y_MAX)
@return     void
@since      v1.0
Sample usage:               ips114_displayimage032_zoom1(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, 0, 0, MT9V03X_CSI_W, MT9V03X_CSI_H)//显示灰度摄像头 图像

void ips114_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)

六、编码器

①qtimer_quad_init()编码器初始化

@brief      QTIMER正交解码初始化
@param      qtimern         选择QTIMER模块(QTIMER_1、QTIMER_2)
@param      phaseA          选择正交解码 A端口
@param      phaseB          选择正交解码 B端口
@return     void
Sample usage:				
qtimer_quad_init(QTIMER_1, QTIMER1_TIMER0_C0,QTIMER1_TIMER1_C1);
void qtimer_quad_init(QTIMERN_enum qtimern, QTIMER_PIN_enum phaseA, QTIMER_PIN_enum phaseB)

你可能感兴趣的:(智能车冲冲冲)