函数详解
- 一、 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() 毫秒级延时函数
void systick_delay_ms(uint32 ms)
{
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);
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);
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);
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);
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);
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,
}TRIGGER_enum;
⑦ 快速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)
④ 舵机调整相关方法
计算舵机位置舵机位置 (0.5ms - 2.5ms)ms/20ms * 50000(50000是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);
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');
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');
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);
@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)