哪位前辈帮忙解说下用c如何去编写运动控制卡的程序

qq_28106231 2017-02-15 03:38:40
小弟想了解下运动控制卡的程序如何用C去编写,在编写时都需要用到什么知识。
...全文
421 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
uid123 2017-02-15
  • 打赏
  • 举报
回复
这个里面没办法用单片机控制。要靠嵌入式控制。这个程序有嵌入式程序,主要代码如下: #include "stm32l4xx.h" #include "delay.h" #include "led.h" #include "usart.h" #include "exti_pc13.h" #include "tim_int.h" #include "tft24.h" #include "font.h" //#include "pic.h" #include "ds3231.h" #include "lcd1602.h" #include "hmc5883l.h" void LCD1602_Time_Temp_Disp() { LCD1602_Write_char(0,0,year/10+'0'); LCD1602_Write_char(1,0,year%10+'0'); LCD1602_Write_char(2,0,'/'); LCD1602_Write_char(3,0,month/10+'0'); LCD1602_Write_char(4,0,month%10+'0'); LCD1602_Write_char(5,0,'/'); LCD1602_Write_char(6,0,date/10+'0'); LCD1602_Write_char(7,0,date%10+'0'); LCD1602_Write_char(8,0,' '); LCD1602_Write_char(9,0,day+'0'); LCD1602_Write_char(10,0,' '); if(ampmflag==0)LCD1602_Write_str(11,0,"DAY "); else LCD1602_Write_str(11,0,"NIGHT"); LCD1602_Write_char(0,1,hour/10+'0'); LCD1602_Write_char(1,1,hour%10+'0'); LCD1602_Write_char(2,1,':'); LCD1602_Write_char(3,1,min/10+'0'); LCD1602_Write_char(4,1,min%10+'0'); LCD1602_Write_char(5,1,':'); LCD1602_Write_char(6,1,sec/10+'0'); LCD1602_Write_char(7,1,sec%10+'0'); LCD1602_Write_char(8,1,' '); LCD1602_Write_char(9,1,disp_int/10+'0'); LCD1602_Write_char(10,1,disp_int%10+'0'); LCD1602_Write_char(11,1,'.'); LCD1602_Write_char(12,1,disp_flo+'0'); LCD1602_Write_char(13,1,0xdf); LCD1602_Write_char(14,1,'C'); TFT24_Write_Char4896(5,0,hour/10,WHITE,BLUE,Char4896); TFT24_Write_Char4896(60,5,hour%10,WHITE,BLUE,Char4896); TFT24_Write_Char4896(5,86,min/10,WHITE,BLUE,Char4896); TFT24_Write_Char4896(60,91,min%10,WHITE,BLUE,Char4896); TFT24_Write_Char1632(5,187,sec/10,WHITE,BLUE,Char1632); TFT24_Write_Char1632(21,187,sec%10,WHITE,BLUE,Char1632); TFT24_Write_Char1632(50,187,month/10,WHITE,BLUE,Char1632); TFT24_Write_Char1632(66,187,month%10,WHITE,BLUE,Char1632); TFT24_Write_Char1632(82,187,10,WHITE,BLUE,Char1632); TFT24_Write_Char1632(98,187,date/10,WHITE,BLUE,Char1632); TFT24_Write_Char1632(114,187,date%10,WHITE,BLUE,Char1632); TFT24_Write_CnChar3232(142,187,day-1,WHITE,BLUE,CnChar3232); if(disp_int>0&&disp_int<40) { TFT24_Line(150,120,150,120-disp_int*3,RED); TFT24_Line(152,120,152,120-disp_int*3,RED); TFT24_Line(154,120,154,120-disp_int*3,RED); TFT24_Line(150,4,150,119-disp_int*3,BLUE); TFT24_Line(152,4,152,119-disp_int*3,BLUE); TFT24_Line(154,4 ,154,119-disp_int*3,BLUE); TFT24_DrawCircle(152,122,3,1,RED); TFT24_Line(148,120,148,3,WHITE); TFT24_Line(156,120,156,3,WHITE); TFT24_Line(148,3,156,3,WHITE); GUI_Dot(146,122,WHITE); GUI_Dot(148,124,WHITE); GUI_Dot(150,126,WHITE); GUI_Dot(152,128,WHITE); GUI_Dot(150,128,WHITE); GUI_Dot(154,128,WHITE); GUI_Dot(154,126,WHITE); GUI_Dot(156,124,WHITE); GUI_Dot(158,122,WHITE); TFT24_Write_Char1632(108,130,disp_int/10,WHITE,BLUE,Char1632); TFT24_Write_Char1632(124,130,disp_int%10,WHITE,BLUE,Char1632); TFT24_Write_Char1632(140,130,12,WHITE,BLUE,Char1632); TFT24_Write_Char1632(156,130,disp_flo,WHITE,BLUE,Char1632); TFT24_Write_CnChar3232(140,158,7,WHITE,BLUE,CnChar3232); } } void LCD_1602_Acc_Disp() { LCD1602_Write_char(0,0,disp[0]); LCD1602_Write_char(1,0,disp[1]); LCD1602_Write_char(2,0,disp[2]); LCD1602_Write_char(3,0,disp[3]+'0'); LCD1602_Write_char(4,0,disp[4]); LCD1602_Write_char(5,0,disp[5]+'0'); LCD1602_Write_char(6,0,disp[6]+'0'); LCD1602_Write_char(7,0,disp[7]+'0'); LCD1602_Write_char(8,0,disp[8]); LCD1602_Write_char(9,0,disp[9]); LCD1602_Write_char(10,0,disp[10]); LCD1602_Write_char(11,0,disp[11]+'0'); LCD1602_Write_char(12,0,disp[12]); LCD1602_Write_char(13,0,disp[13]+'0'); LCD1602_Write_char(14,0,disp[14]+'0'); LCD1602_Write_char(15,0,disp[15]+'0'); LCD1602_Write_char(0,1,disp[16]); LCD1602_Write_char(1,1,disp[17]); LCD1602_Write_char(2,1,disp[18]); LCD1602_Write_char(3,1,disp[19]+'0'); LCD1602_Write_char(4,1,disp[20]); LCD1602_Write_char(5,1,disp[21]+'0'); LCD1602_Write_char(6,1,disp[22]+'0'); LCD1602_Write_char(7,1,disp[23]+'0'); LCD1602_Write_str(8,1," "); TFT24_Write_CnChar3232(10,0,16,WHITE,BLUE,CnChar3232); TFT24_Write_CnChar3232(42,0,17,WHITE,BLUE,CnChar3232); TFT24_Write_CnChar3232(74,0,18,WHITE,BLUE,CnChar3232); TFT24_Write_CnChar3232(106,0,19,WHITE,BLUE,CnChar3232); if(disp[3]==0&&disp[11]==0&&disp[19]==0||disp[19]==1) { TFT24_Write_CnChar6464(10,32,7,WHITE,BLUE,CnChar6464); TFT24_Write_CnChar6464(74,32,8,WHITE,BLUE,CnChar6464); } else { TFT24_Write_CnChar6464(10,32,9,WHITE,BLUE,CnChar6464); TFT24_Write_CnChar6464(74,32,10,WHITE,BLUE,CnChar6464); } } void LCD1602_Pa_Disp() { if(zpaflag==1) { LCD1602_Write_char(0,0,psb/100000+'0'); LCD1602_Write_char(1,0,psb/10000%10+'0'); LCD1602_Write_char(2,0,psb/1000%10+'0'); LCD1602_Write_char(3,0,psb/100%10+'0'); LCD1602_Write_char(4,0,psb/10%10+'0'); LCD1602_Write_char(5,0,psb%10+'0'); LCD1602_Write_str(6,0,"Pa "); TFT24_Write_CnChar6464(10,32,0,WHITE,BLUE,CnChar6464); TFT24_Write_CnChar6464(74,32,1,WHITE,BLUE,CnChar6464); TFT24_Write_Char1632(10,0,psb/100000,WHITE,BLUE,Char1632); TFT24_Write_Char1632(26,0,psb/10000%10,WHITE,BLUE,Char1632); TFT24_Write_Char1632(42,0,psb/1000%10,WHITE,BLUE,Char1632); TFT24_Write_Char1632(58,0,psb/100%10,WHITE,BLUE,Char1632); TFT24_Write_Char1632(74,0,psb/10%10,WHITE,BLUE,Char1632); TFT24_Write_Char1632(90,0,psb%10,WHITE,BLUE,Char1632); TFT24_Write_CnChar3232(106,0,15,WHITE,BLUE,CnChar3232); if(psb>=100000&&psb<=102000) { TFT24_Write_CnChar6464(10,96,5,GREEN,BLUE,CnChar6464); TFT24_Write_CnChar6464(74,96,6,GREEN,BLUE,CnChar6464); } else if(psb<100000) { TFT24_Write_CnChar6464(10,96,2,YELLOW,BLUE,CnChar6464); TFT24_Write_CnChar6464(74,96,4,YELLOW,BLUE,CnChar6464); } else if(psb>102000) { TFT24_Write_CnChar6464(10,96,2,RED,BLUE,CnChar6464); TFT24_Write_CnChar6464(74,96,3,RED,BLUE,CnChar6464); } } else LCD1602_Write_str(0,0,"ZPA2326 ERROR! "); LCD1602_Write_str(0,1,"Angle:"); LCD1602_Write_char(6,1,intang/100+'0'); LCD1602_Write_char(7,1,intang/10%10+'0'); LCD1602_Write_char(8,1,intang%10+'0'); if(intang>=70&&intang<=88) { LCD1602_Write_str(10,1,"NORTH"); TFT24_Write_CnChar3232(106,160,14,WHITE,BLUE,CnChar3232); } else if(intang==45) { LCD1602_Write_str(10,1,"EAST "); TFT24_Write_CnChar3232(106,160,11,WHITE,BLUE,CnChar3232); } else if(intang==44) { LCD1602_Write_str(10,1,"SOUTH"); TFT24_Write_CnChar3232(106,160,12,WHITE,BLUE,CnChar3232); } else if(intang==89) { LCD1602_Write_str(10,1,"WEST "); TFT24_Write_CnChar3232(106,160,13,WHITE,BLUE,CnChar3232); } else LCD1602_Write_str(9,1," "); TFT24_Write_CnChar3232(10,160,8,WHITE,BLUE,CnChar3232); TFT24_Write_CnChar3232(42,160,9,WHITE,BLUE,CnChar3232); TFT24_Write_CnChar3232(74,160,10,WHITE,BLUE,CnChar3232); } int main() { HAL_Init(); SystemClock_Config(1,30,7,4,2); Delay_Init(); LED_Init(); //UART1_Init(115200); UART2_Init(115200); EXTI15_10_IRQHandler_Config(); TIM2_Init(5000-1,10000-1); TIM3_Init(5000-1,10000-1); TIM4_Init(5000-1,10000-1); TIM5_Init(100-1,10000-1); TFT24_Init(); TFT24_ClearScreen(BLUE); //LCD_Drawbmp(0,0,175,175,gImage_pic); //TFT24_Write_CnChar3232(23+i*32,180,i,WHITE,BLUE,CnChar3232); DS3231_Init(0,0,17,2,14,2,16,15,00); ADXL345_Init(); HMC5883L_Init(); LCD1602_Init(); while(1) { switch(choice) { case 0: { TimeRead_Conv(); LCD1602_Time_Temp_Disp(); break; } case 1: { if(IIC2_ReadData(0xa6,0x00)==0xe5) { ADXL345_Read(); LCD_1602_Acc_Disp(); break; } } case 2: { LCD1602_Pa_Disp(); HMC5883L_Read(); break; } default:TFT24_ClearScreen(BLUE);break; } } }

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧