/************************************版权申明********************************************
** 广州大彩光电科技有限公司
** http://www.gz-dc.com
**-----------------------------------文件信息--------------------------------------------
** 文件名称: hmi_driver.c
** 修改时间: 2018-05-18
** 文件说明: 用户MCU串口驱动函数库
** 技术支持: Tel: 020-82186683 Email: hmi@gz-dc.com Web:www.gz-dc.com
--------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------*/
#include "hmi_driver.h"
#include "STC32G_UART.h"
#define TX_8(x) TX2_write2buff((x)&0xFF) //发送单个字节
#define TX_8N(P,N) SendNU8((uint8 *)P,N) //发送N个字节
#define TX_16(x) TX_8((x)>>8);TX_8(x) //发送16位整数
#define TX_16N(P,N) SendNU16((uint16 *)P,N) //发送N个16位整数
#define TX_32(x) TX_16((x)>>16);TX_16((x)&0xFFFF) //发送32位整数
#if(CRC16_ENABLE)
static uint16 _crc16 = 0xffff;
/*!
* \brief 检查数据是否符合CRC16校验
* \param buffer 待校验的数据
* \param n 数据长度,包含CRC16
* \param pcrc 校验码
*/
static void AddCRC16(uint8 *buffer,uint16 n,uint16 *pcrc)
{
uint16 i,j,carry_flag,a;
for (i=0; i<n; i++)
{
*pcrc=*pcrc^buffer[i];
for (j=0; j<8; j++)
{
a=*pcrc;
carry_flag=a&0x0001;
*pcrc=*pcrc>>1;
if (carry_flag==1)
*pcrc=*pcrc^0xa001;
}
}
}
/*!
* \brief 检查数据是否符合CRC16校验
* \param buffer 待校验的数据,末尾存储CRC16
* \param n 数据长度,包含CRC16
* \return 校验通过返回1,否则返回0
*/
uint16 CheckCRC16(uint8 *buffer,uint16 n)
{
uint16 crc0 = 0x0;
uint16 crc1 = 0xffff;
if(n>=2)
{
crc0 = ((buffer[n-2]<<8)|buffer[n-1]);
AddCRC16(buffer,n-2,&crc1);
}
return (crc0==crc1);
}
/*!
* \brief 发送一个字节
* \param c
*/
void SEND_DATA(uint8 c)
{
AddCRC16(&c,1,&_crc16);
TX2_write2buff(c);
}
/*!
* \brief 帧头
*/
void BEGIN_CMD()
{
TX_8(0XEE);
_crc16 = 0XFFFF; //开始计算CRC16
}
/*!
* \brief 帧尾
*/
void END_CMD()
{
uint16 crc16 = _crc16;
TX_16(crc16); //发送CRC16
TX_32(0XFFFCFFFF);
}
#else//NO CRC16
#define SEND_DATA(P) TX2_write2buff(P) //发送一个字节
#define BEGIN_CMD() TX_8(0XEE) //帧头
#define END_CMD() TX_32(0XFFFCFFFF) //帧尾
#endif
/*!
* \brief 延时
* \param n 延时时间(毫秒单位)
*/
void DelayMS(unsigned int n)
{
int i,j;
for(i = n;i>0;i--)
for(j=1000;j>0;j--) ;
}
/*!
* \brief 串口发送送字符串
* \param 字符串
*/
void SendStrings(uchar *str)
{
while(*str)
{
TX_8(*str);
str++;
}
}
/*!
* \brief 串口发送送N个字节
* \param 个数
*/
void SendNU8(uint8 *pData,uint16 nDataLen)
{
uint16 i = 0;
for (;i<nDataLen;++i)
{
TX_8(pData[i]);
}
}
/*!
* \brief 串口发送送N个16位的数据
* \param 个数
*/
void SendNU16(uint16 *pData,uint16 nDataLen)
{
uint16 i = 0;
for (;i<nDataLen;++i)
{
TX_16(pData[i]);
}
}
/*!
* \brief 发送握手命令
*/
void SetHandShake()
{
BEGIN_CMD();
TX_8(0x04);
END_CMD();
}
/*!
* \brief 设置前景色
* \param color 前景色
*/
void SetFcolor(uint16 color)
{
BEGIN_CMD();
TX_8(0x41);
TX_16(color);
END_CMD();
}
/*!
* \brief 设置背景色
* \param color 背景色
*/
void SetBcolor(uint16 color)
{
BEGIN_CMD();
TX_8(0x42);
TX_16(color);
END_CMD();
}
/*!
* \brief 获取
* \param color 背景色
*/
void ColorPicker(uint8 mode, uint16 x,uint16 y)
{
BEGIN_CMD();
TX_8(0xA3);
TX_8(mode);
TX_16(x);
TX_16(y);
END_CMD();
}
/*!
* \brief 清除画面
*/
void GUI_CleanScreen()
{
BEGIN_CMD();
TX_8(0x01);
END_CMD();
}
/*!
* \brief 设置文字间隔
* \param x_w 横向间隔
* \param y_w 纵向间隔
*/
void SetTextSpace(uint8 x_w, uint8 y_w)
{
BEGIN_CMD();
TX_8(0x43);
TX_8(x_w);
TX_8(y_w);
END_CMD();
}
/*!
* \brief 设置文字显示限制
* \param enable 是否启用限制
* \param width 宽度
* \param height 高度
*/
void SetFont_Region(uint8 enable,uint16 width,uint16 height)
{
BEGIN_CMD();
TX_8(0x45);
TX_8(enable);
TX_16(width);
TX_16(height);
END_CMD();
}
/*!
* \brief 设置过滤色
* \param fillcolor_dwon 颜色下界
* \param fillcolor_up 颜色上界
*/
void SetFilterColor(uint16 fillcolor_dwon, uint16 fillcolor_up)
{
BEGIN_CMD();
TX_8(0x44);
TX_16(fillcolor_dwon);
TX_16(fillcolor_up);
END_CMD();
}
/*!
* \brief 设置过滤色
* \param x 位置X坐标
* \param y 位置Y坐标
* \param back 颜色上界
* \param font 字体
* \param strings 字符串内容
*/
void DisText(uint16 x, uint16 y,uint8 back,uint8 font,uchar *strings )
{
BEGIN_CMD();
TX_8(0x20);
TX_16(x);
TX_16(y);
TX_8(back);
TX_8(font);
SendStrings(strings);
END_CMD();
}
/*!
* \brief 显示光标
* \param enable 是否显示
* \param x 位置X坐标
* \param y 位置Y坐标
* \param width 宽度
* \param height 高度
*/
void DisCursor(uint8 enable,uint16 x, uint16 y,uint8 width,uint8 height )
{
BEGIN_CMD();
TX_8(0x21);
TX_8(enable);
TX_16(x);
TX_16(y);
TX_8(width);
TX_8(height);
END_CMD();
}
/*!
* \brief 显示全屏图片
* \param image_id 图片索引
* \param masken 是否启用透明掩码
*/
void DisFull_Image(uint16 image_id,uint8 masken)
{
BEGIN_CMD();
TX_8(0x31);
TX_16(image_id);
TX_8(masken);
END_CMD();
}
/*!
* \brief 指定位置显示图片
* \param x 位置X坐标
* \param y 位置Y坐标
* \param image_id 图片索引
* \param masken 是否启用透明掩码
*/
void DisArea_Image(uint16 x,uint16 y,uint16 image_id,uint8 masken)
{
BEGIN_CMD();
TX_8(0x32);
TX_16(x);
TX_16(y);
TX_16(image_id);
TX_8(masken);
END_CMD();
}
/*!
* \brief 显示裁剪图片
* \param x 位置X坐标
* \param y 位置Y坐标
* \param image_id 图片索引
* \param image_x 图片裁剪位置X坐标
* \param image_y 图片裁剪位置Y坐标
* \param image_l 图片裁剪长度
* \param image_w 图片裁剪高度
* \param masken 是否启用透明掩码
*/
void DisCut_Image(uint16 x,uint16 y,uint16 image_id,uint16 image_x,uint16 image_y,uint16 image_l, uint16 image_w,uint8 masken)
{
BEGIN_CMD();
TX_8(0x33);
TX_16(x);
TX_16(y);
TX_16(image_id);
TX_16(image_x);
TX_16(image_y);
TX_16(image_l);
TX_16(image_w);
TX_8(masken);
END_CMD();
}
/*!
* \brief 显示GIF动画
* \param x 位置X坐标
* \param y 位置Y坐标
* \param flashimage_id 图片索引
* \param enable 是否显示
* \param playnum 播放次数
*/
void DisFlashImage(uint16 x,uint16 y,uint16 flashimage_id,uint8 enable,uint8 playnum)
{
BEGIN_CMD();
TX_8(0x80);
TX_16(x);
TX_16(y);
TX_16(flashimage_id);
TX_8(enable);
TX_8(playnum);
END_CMD();
}
/*!
* \brief 画点
* \param x 位置X坐标
* \param y 位置Y坐标
*/
void GUI_Dot(uint16 x,uint16 y)
{
BEGIN_CMD();
TX_8(0x50);
TX_16(x);
TX_16(y);
END_CMD();
}
/*!
* \brief 画线
* \param x0 起始位置X坐标
* \param y0 起始位置Y坐标
* \param x1 结束位置X坐标
* \param y1 结束位置Y坐标
*/
void GUI_Line(uint16 x0, uint16 y0, uint16 x1, uint16 y1)
{
BEGIN_CMD();
TX_8(0x51);
TX_16(x0);
TX_16(y0);
TX_16(x1);
TX_16(y1);
END_CMD();
}
/*!
* \brief 画折线
* \param mode 模式
* \param dot 数据点
* \param dot_cnt 点数
*/
void GUI_ConDots(uint8 mode,uint16 *dot,uint16
没有合适的资源?快使用搜索试试~ 我知道了~
STC32使用输入捕获测量占空比
共215个文件
c:73个
h:58个
orig:19个
需积分: 0 2 下载量 158 浏览量
2023-07-22
17:16:23
上传
评论
收藏 795KB ZIP 举报
温馨提示
STC32使用输入捕获测量占空比
资源推荐
资源详情
资源评论
收起资源包目录
STC32使用输入捕获测量占空比 (215个子文件)
Project.uvgui.17373 89KB
STC32G_UART_Isr.__i 205B
cmd_process.__i 198B
hmi_driver.__i 195B
STC32G_UART.__i 193B
cmd_queue.__i 192B
STARTUP.A51 5KB
hmi_driver.c 40KB
main.c 36KB
cmd_process.c 34KB
STC32G_NVIC.c 29KB
STC32G_PWM.c 18KB
APP_HSSPI.c 18KB
APP_DMA_LCM.c 18KB
STC32G_DMA_Isr.c 13KB
STC32G_UART.c 11KB
APP_DMA_I2C.c 10KB
STC32G_LIN.c 10KB
APP_RTC.c 10KB
peripheralInit.c 10KB
APP_DMA_SPI_PS.c 10KB
STC32G_DMA.c 9KB
APP_DMA_UART.c 9KB
APP_CAN.c 8KB
STC32G_CAN.c 8KB
STC32G_USART_LIN.c 8KB
APP_EEPROM.c 8KB
STC32G_I2C.c 8KB
APP_PWMA_Output.c 6KB
APP_USART2_LIN.c 6KB
APP_USART_LIN.c 6KB
APP_HSPWM.c 6KB
APP_PWMB_Output.c 6KB
APP_DMA_M2M.c 6KB
APP_LIN.c 6KB
APP_DMA_AD.c 6KB
APP_INT_UART.c 6KB
APP_SPI_PS.c 5KB
STC32G_EEPROM.c 5KB
STC32G_Soft_I2C.c 5KB
STC32G_UART_Isr.c 5KB
STC32G_UART_Isr.c 5KB
STC32G_GPIO.c 5KB
APP_I2C_PS.c 5KB
APP_AD_UART.c 5KB
cmd_queue.c 4KB
AD9851.c 4KB
STC32G_CAN_Isr.c 4KB
STC32G_Clock.c 4KB
STC32G_Timer.c 4KB
APP_WDT.c 3KB
APP.c 3KB
STC32G_ADC.c 3KB
STC32G_SPI.c 3KB
STC32G_Exti_Isr.c 3KB
STC32G_Exti_Isr.c 3KB
STC32G_RTC.c 3KB
STC32G_Timer_Isr.c 3KB
STC32G_Timer_Isr.c 3KB
STC32G_I2C_Isr.c 3KB
APP_Lamp.c 3KB
STC32G_Soft_UART.c 2KB
isr.c 2KB
main.c 2KB
STC32G_Compare.c 2KB
STC32G_LCM.c 2KB
STC32G_WDT.c 2KB
STC32G_Exti.c 2KB
ulitity.c 2KB
STC32G_SPI_Isr.c 2KB
STC32G_LIN_Isr.c 2KB
STC32G_RTC_Isr.c 1KB
STC32G_Delay.c 1KB
STC32G_LCM_Isr.c 1KB
STC32G_Compare_Isr.c 1KB
STC32G_ADC_Isr.c 1KB
hmi_user_uart.c 982B
STC32G_PWM_Isr.c 935B
STC32G_PWM_Isr.c 860B
STC32G_GPIO_Isr.c 859B
hmi_driver.crf 155KB
main.crf 106KB
APP_PWMA_Output.crf 103KB
STC32G_PWM.crf 92KB
peripheralInit.crf 92KB
isr.crf 88KB
cmd_process.crf 83KB
STC32G_NVIC.crf 73KB
STC32G_UART_Isr.crf 73KB
cmd_queue.crf 72KB
STC32G_UART.crf 68KB
STC32G_GPIO.crf 66KB
STC32G_Timer.crf 60KB
STC32G_ADC.crf 58KB
STC32G_Exti.crf 55KB
STC32G_Delay.crf 53KB
STC32G.H 72KB
STC32G_PWM.h 47KB
hmi_driver.h 23KB
font.h 18KB
共 215 条
- 1
- 2
- 3
资源评论
梦境制造机
- 粉丝: 4
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功