1.uwtick实现led闪烁
uint32_t time1000ms;
bool led1_sta;
初始化的时候
time1000ms=uwTick;
if(uwTick-time1000ms>1000)
{
led1_sta=!led1_sta;
if(led1_sta)
{
led_dis(0x01);
}
else{
led_dis(0x00);
}
if(uwTick-time1000ms>1000)
{
led1_sta=!led1_sta;
if(led1_sta)
{
led_dis(0x01);
}
else{
led_dis(0x00);
}
time1000ms=uwTick;
}
}
2.报警统计次数
uint8_t fn;//频率超限次数统计
void alarm_proc()
{
static uint8_t bf;//频率标志位
if(fre>fh)
{
if(bf==0)
{
fn++;
bf=1;
}
}
else bf=0;
}
3.冒泡排序
for(int i=0;i<4;i++)
{
for(int j=i+1;j<5;j++)
{
if(sortb_data[j]<sortb_data[i])
{
float bianliang;//从小到大排序
bianliang=sortb_data[j];//先把小的进行保存
sortb_data[j]=sortb_data[i];
sortb_data[i]=bianliang;
}
}
}
4.队列
//加入记录30个数据
int pda[30];
for(int i=0;i<29;i++)
{
pda[i]=pda[i+1];
}
pda[29]=fre2;//把测量到的数放在最后,一步一步往前走
5.翻转代码
#include"lcd.h"
//翻转
void REG_932X_Init1(void)
{
LCD_WriteReg(R227, 0x3008); // Set internal timing
LCD_WriteReg(R231, 0x0012); // Set internal timing
LCD_WriteReg(R239, 0x1231); // Set internal timing
LCD_WriteReg(R1, 0x0100); // set SS and SM bit //0x0100......第一个改的地方
LCD_WriteReg(R2, 0x0700); // set 1 line inversion
LCD_WriteReg(R3, 0x1030); // set GRAM write direction and BGR=1.
LCD_WriteReg(R4, 0x0000); // Resize register
LCD_WriteReg(R8, 0x0207); // set the back porch and front porch
LCD_WriteReg(R9, 0x0000); // set non-display area refresh cycle ISC[3:0]
LCD_WriteReg(R10, 0x0000); // FMARK function
LCD_WriteReg(R12, 0x0000); // RGB interface setting
LCD_WriteReg(R13, 0x0000); // Frame marker Position
LCD_WriteReg(R15, 0x0000); // RGB interface polarity
/**************Power On sequence ****************/
LCD_WriteReg(R16, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_WriteReg(R17, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
LCD_WriteReg(R18, 0x0000); // VREG1OUT voltage
LCD_WriteReg(R19, 0x0000); // VDV[4:0] for VCOM amplitude
// Delay_Ms(200); // Delay 200 MS , Dis-charge capacitor power voltage
HAL_Delay(200);
LCD_WriteReg(R16, 0x1690); // SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_WriteReg(R17, 0x0227); // R11H=0x0221 at VCI=3.3V, DC1[2:0], DC0[2:0], VC[2:0]
// Delay_Ms(50); // Delay 50ms
HAL_Delay(50);
LCD_WriteReg(R18, 0x001D); // External reference voltage= Vci;
// Delay_Ms(50); // Delay 50ms
HAL_Delay(50);
LCD_WriteReg(R19, 0x0800); // R13H=1D00 when R12H=009D;VDV[4:0] for VCOM amplitude
LCD_WriteReg(R41, 0x0014); // R29H=0013 when R12H=009D;VCM[5:0] for VCOMH
LCD_WriteReg(R43, 0x000B); // Frame Rate = 96Hz
// Delay_Ms(50); // Delay 50ms
HAL_Delay(50);
LCD_WriteReg(R32, 0x0000); // GRAM horizontal Address
LCD_WriteReg(R33, 0x0000); // GRAM Vertical Address
/* ----------- Adjust the Gamma Curve ---------- */
LCD_WriteReg(R48, 0x0007);
LCD_WriteReg(R49, 0x0707);
LCD_WriteReg(R50, 0x0006);
LCD_WriteReg(R53, 0x0704);
LCD_WriteReg(R54, 0x1F04);
LCD_WriteReg(R55, 0x0004);
LCD_WriteReg(R56, 0x0000);
LCD_WriteReg(R57, 0x0706);
LCD_WriteReg(R60, 0x0701);
LCD_WriteReg(R61, 0x000F);
/* ------------------ Set GRAM area --------------- */
LCD_WriteReg(R80, 0x0000); // Horizontal GRAM Start Address
LCD_WriteReg(R81, 0x00EF); // Horizontal GRAM End Address
LCD_WriteReg(R82, 0x0000); // Vertical GRAM Start Address
LCD_WriteReg(R83, 0x013F); // Vertical GRAM Start Address
LCD_WriteReg(R96, 0xA700); // Gate Scan Line 0xA700.....第二个改的地方
LCD_WriteReg(R97, 0x0001); // NDL,VLE, REV
LCD_WriteReg(R106, 0x0000); // set scrolling line
/* -------------- Partial Display Control --------- */
LCD_WriteReg(R128, 0x0000);
LCD_WriteReg(R129, 0x0000);
LCD_WriteReg(R130, 0x0000);
LCD_WriteReg(R131, 0x0000);
LCD_WriteReg(R132, 0x0000);
LCD_WriteReg(R133, 0x0000);
/* -------------- Panel Control ------------------- */
LCD_WriteReg(R144, 0x0010);
LCD_WriteReg(R146, 0x0000);
LCD_WriteReg(R147, 0x0003);
LCD_WriteReg(R149, 0x0110);
LCD_WriteReg(R151, 0x0000);
LCD_WriteReg(R152, 0x0000);
/* Set GRAM write direction and BGR = 1 */
/* I/D=01 (Horizontal : increment, Vertical : decrement) */
/* AM=1 (address is updated in vertical writing direction) */
LCD_WriteReg(R3, 0x01018); //0x1018
LCD_WriteReg(R7, 0x0173); // 262K color and display ON
}