资源简介
在Keil5下写的STM32F103C例程,基于STM32F103Cx最小系统板, 采用定时器Tim3计时,定时器Tim4输出PWM并由定时器Tim3进行PWM捕获,显示可以采用I2C接口的0.96寸OLED,或SPI4线接口的0.96寸OLED,或1.44寸LCD, 或JXL12864-086,内含所以调试通过的项目文件和驱动文件。与其他keil4下的项目代码比,更超值!
代码片段和文件信息
#include “lcd.h“
#include “string.h“
#include “font.h“
#include “..\SRC\delay.h“
#include “gui.h“
//******************************************************************
//功能: GUI描绘一个点
//输入参数:x:光标位置x坐标
// y:光标位置y坐标
// color:要填充的颜色
//返回值: 无
//修改记录:无
//******************************************************************
void GUI_DrawPoint(u16 xu16 yu16 color)
{
LCD_SetCursor(xy);//设置光标位置
LCD_WR_DATA_16Bit(color);
}
//******************************************************************
//功能: 在指定区域内填充颜色
//输入参数:sx:指定区域开始点x坐标
// sy:指定区域开始点y坐标
// ex:指定区域结束点x坐标
// ey:指定区域结束点y坐标
// color:要填充的颜色
//返回值: 无
//修改记录:无
//******************************************************************
void LCD_Fill(u16 sxu16 syu16 exu16 eyu16 color)
{
u16 ij;
u16 width=ex-sx+1; //得到填充的宽度
u16 height=ey-sy+1; //高度
LCD_SetWindows(sxsyex-1ey-1);//设置显示窗口
for(i=0;i {
for(j=0;j LCD_WR_DATA_16Bit(color); //写入数据
}
LCD_SetWindows(00lcddev.width-1lcddev.height-1);//恢复窗口设置为全屏
}
//******************************************************************
//功能: GUI画线
//输入参数:x1y1:起点坐标
// x2y2:终点坐标
//返回值: 无
//修改记录:无
//******************************************************************
void LCD_DrawLine(u16 x1 u16 y1 u16 x2 u16 y2)
{
u16 t;
int xerr=0yerr=0delta_xdelta_ydistance;
int incxincyuRowuCol;
delta_x=x2-x1; //计算坐标增量
delta_y=y2-y1;
uRow=x1;
uCol=y1;
if(delta_x>0)incx=1; //设置单步方向
else if(delta_x==0)incx=0;//垂直线
else {incx=-1;delta_x=-delta_x;}
if(delta_y>0)incy=1;
else if(delta_y==0)incy=0;//水平线
else{incy=-1;delta_y=-delta_y;}
if( delta_x>delta_y)distance=delta_x; //选取基本增量坐标轴
else distance=delta_y;
for(t=0;t<=distance+1;t++ )//画线输出
{
LCD_DrawPoint(uRowuCol);//画点
xerr+=delta_x ;
yerr+=delta_y ;
if(xerr>distance)
{
xerr-=distance;
uRow+=incx;
}
if(yerr>distance)
{
yerr-=distance;
uCol+=incy;
}
}
}
//******************************************************************
//功能: GUI画矩形(非填充)
//输入参数:(x1y1)(x2y2):矩形的对角坐标
//返回值: 无
//修改记录:无
//******************************************************************
void LCD_DrawRectangle(u16 x1 u16 y1 u16 x2 u16 y2)
{
LCD_DrawLine(x1y1x2y1);
LCD_DrawLine(x1y1x1y2);
LCD_DrawLine(x1y2x2y2);
LCD_DrawLine(x2y1x2y2);
}
//******************************************************************
//功能: GUI画矩形(填充)
//输入参数:(x1y1)(x2y2):矩形的对角坐标
//返回值: 无
//修改记录:无
//******************************************************************
void LCD_DrawFillRectangle(u16 x1 u16 y1 u16 x2 u16 y2)
{
LCD_Fill(x1y1x2y2POINT_COLOR);
}
//******************************************************************
//功能: 8对称性画圆算法(内部调用)
//输入参数:(xcyc) :圆中心坐标
// (xy):光标相对于圆心的坐标
// c:填充的颜色
//返回值: 无
//修改记录:无
//*************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 89085 2018-03-06 00:26 Jli
文件 755 2018-01-20 18:57 Jli
目录 0 2018-03-05 18:58 LCD\
文件 15971 2018-02-22 21:36 LCD\GUI.c
文件 72 2014-11-12 12:16 LCD\LCD_Config.h
文件 182033 2015-10-25 15:22 LCD\Picture.h
文件 25482 2015-11-03 09:56 LCD\font.h
文件 1167 2015-11-03 10:13 LCD\gui.h
文件 12471 2018-02-22 22:24 LCD\lcd.c
文件 4728 2018-02-22 22:37 LCD\lcd.h
目录 0 2018-03-05 17:31 Listings\
文件 113728 2018-03-07 15:52 Listings\TestStm32F103Cb.map
文件 43929 2018-03-07 15:52 Listings\startup_stm32f10x_md.lst
目录 0 2018-03-05 17:31 RTE\
目录 0 2018-03-05 17:31 RTE\CMSIS\
文件 11181 2015-03-13 15:14 RTE\CMSIS\RTX_Conf_CM.c.0000
目录 0 2018-03-05 17:31 RTE\Device\
目录 0 2018-03-05 17:31 RTE\Device\STM32F103C8\
文件 55603 2018-01-20 21:43 RTE\Device\STM32F103C8\RTE_Device.h
文件 55603 2013-09-26 01:08 RTE\Device\STM32F103C8\RTE_Device.h.0000
文件 12765 2012-01-24 12:06 RTE\Device\STM32F103C8\startup_stm32f10x_md.s
文件 12765 2012-01-24 12:06 RTE\Device\STM32F103C8\startup_stm32f10x_md.s.0000
文件 4164 2014-07-04 16:13 RTE\Device\STM32F103C8\stm32f10x_conf.h
文件 4164 2014-07-04 16:13 RTE\Device\STM32F103C8\stm32f10x_conf.h.0000
文件 36557 2012-01-24 12:06 RTE\Device\STM32F103C8\system_stm32f10x.c
文件 36557 2012-01-24 12:06 RTE\Device\STM32F103C8\system_stm32f10x.c.0000
目录 0 2018-03-05 17:31 RTE\Device\STM32F103CB\
文件 55603 2013-09-26 01:08 RTE\Device\STM32F103CB\RTE_Device.h.0000
文件 55603 2013-09-26 01:08 RTE\Device\STM32F103CB\RTE_Device.h.0001
文件 12765 2012-01-24 12:06 RTE\Device\STM32F103CB\startup_stm32f10x_md.s.0000
文件 12765 2012-01-24 12:06 RTE\Device\STM32F103CB\startup_stm32f10x_md.s.0001
............此处省略24个文件信息
- 上一篇:动态规划的算法解决多段图问题
- 下一篇:VMD实现函数
相关资源
- 电压型PWM整流器控制器的设计
- STM32任意角度移相全桥PWM
- STM32通用定时器实现频率占空比可调互
- dspic33的PWM调试程序
- zw_STM32定时器捕获PWM波以及占空比.z
- 基于DSPf28335的PWM——输出互补对称波
- STC12C5A60S2的内部AD和PWM的程序
- 如何使用CCS建立SVPWM工程
- 单相PWM整流电路的仿真设计.doc.doc
- 使用PWM得到精密的输出电压
- 树莓派控制RGB LED源代码softPwm
- 呼吸灯STC12C5A60S2
- PWM逻辑.alc STC8G2K64S4P00-P54全输出
- STC单片机舵机PWM控制教程源码,教程
- SVPWM的仿真
- 三相SVPWM整流
- 汇编实现pwm及按键控制
- STM8S单片机输出互补PWM可通过刹车输入
- Verilog实现APB总线接口的PWM模块
- PWM 逆变器双环控制技术研究
- 113172211svpwm_get.zip
- msp430G2553直流电机控制PWM调速和正反转
- 基于CC2530单路PWM控制程序
- 用FPGA生成SPWM波形
- pwm 步进电机pwm 步进电机 pwm 步进电机
- 计算生成SPWM的占空比的软件
- 基于MSP430单片机实现的正弦波PWM输出
- SPWM计算器
- 利用单片机定时器产生的占空比可调
- Qt编写的Leds以及蜂鸣器奏乐
评论
共有 条评论