版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第一篇硬件資源介 第二篇開發(fā)工具與工程架構(gòu)解 第三篇例程使用詳 第一章LED跑馬 第二章蜂鳴器使 第三章按鍵使 第四章TFTLCD顯 第五章串口1-RS232實(shí) 第六章定時(shí)器中 第七 輸 第八章模數(shù)轉(zhuǎn)換 第九章數(shù)模轉(zhuǎn)換 第十章串口2- 第十一章 第十二章 第十三章CAN1與CAN2通 第十四章RTC實(shí)時(shí)時(shí) 第十五章漢字顯 第十六章RTC農(nóng)歷顯 第十七章溫度傳感器 第十八章紅外傳感器 第十九章觸摸屏使 第二十章232_485_can數(shù)據(jù)轉(zhuǎn)換通 第二十一章USBU盤 第二十三章TCP服務(wù)器數(shù)據(jù)收發(fā)實(shí) 第二十四章TCP客戶端數(shù)據(jù)收發(fā)實(shí) 第二十五章UDP服務(wù)器數(shù)據(jù)收發(fā)實(shí) 第二十六章UDP客戶端數(shù)據(jù)收發(fā)實(shí) 第二十七章串口1-232與TCP服務(wù)器雙向通 第一篇硬件資源介紹1.2這邊注意下 座供電用6V供電也行,但是為了供電穩(wěn)定議用6V以上的。MINIUSB接口接于STM32高速usbIO口,用于供電和進(jìn)行USB通信,不能用于程序。由于沒有加高速,所以USB也只能運(yùn)行于全速模式。第二篇KEIL5(MDK5)包含工控STM32F407(高配版)資料\常用軟件\MDK5中有安裝文件和安裝STM32F407開發(fā)板(高配版)可以使用串口線或者仿真器程序,具體怎么程序,工控板STM32F407(高配版)資料\F407開發(fā)板(高配版)程 第三篇此篇會(huì)結(jié)合開發(fā)板原理圖和程序源碼,講解怎么使用各個(gè)例第一章LED跑馬int代碼是通過位帶操IO口intdelaydelayinit();//初始化延時(shí)函數(shù) //初始化LED端//LED0//LED0//LED1 //LED2 //LED0 //LED0 //LED1//LED2 //LED0 //LED1 //LED2}}3.1.3開發(fā)板下入該LDE程序,LEDLED0LED2依次亮滅流水燈效果
第二章蜂鳴器使用程序下進(jìn)去后,蜂鳴器會(huì)一響一閉的
第三 按鍵使voidvoidkey_scan(u8 elseif(KEY1==0)keytem=2;elseif(KEY2==0)keyelseif(KEY1==0)keytem=2;elseif(KEY2==0)keytem=3;elseif(KEY3==0){ //鍵抬起后按鍵值 if(key_tem==key_bak) else配合第二次掃描有效,這樣實(shí)現(xiàn)了去抖動(dòng)////有鍵按下后執(zhí)行一次掃描 if((mode==0)&&(key_time>1))//key_time>1按鍵值無效,這就是單按mode為1就為連按 // //去{{}}{{}}}KEY0,ledKEY1,KEY2led0,長按KEY32led1和led2第四 TFTLCD顯3.4.2代碼解//使NOR/SRAM的Bank1.sector4//A12作為數(shù)據(jù)命//注意設(shè)置時(shí)STM32內(nèi)部會(huì)右移一位對(duì) #define ((u32)(0x6C000000|#define#define ((u32)(0x6C000000| #defineLCD_CMD (*(u16*)CMD_BASE)#define (*(u16*)由于用FSMCA12作為數(shù)據(jù)命令選擇線,所以數(shù)據(jù)與命令的地址線3.4.3程序下進(jìn)去之KEY0,依次進(jìn)行各顏色清屏顯示,按KEY1,種情
第五 串口1-RS232實(shí)3.5.1使用DB9針232串口時(shí),需要將P14的短路帽接起來{else{else 用的串口1,所以需要對(duì)串口1進(jìn)行初始化和編寫需要的中斷函數(shù)3.5.2代碼解串口發(fā)送}}while(k<douart1SendChar(*(strk));k++; u16k=0{voiduart1SendChars(u8*str,u16{oid串口接收中斷,里面定義接收命令的格{oid if(USART_GetITStatus(USART1USART_IT_RXNE)RESET)//接收中斷{ {}} elseif(strcmp("Close_led1",(char*)receive_str)==0)LED1=1;elseif(strcmp("Open_beep",(char*)receive_str)==0)BEEP=1;elseif(strcmp("Close_beep",(char*)receive_str)==0)BEEP=0;//蜂鳴器不響}else{}}}程序下進(jìn)去之后,接上232串口線,電腦端打開串口助手,發(fā)送1、串口助手接收開發(fā)板串口1發(fā)來的KEY0開發(fā)板會(huì)發(fā)送UART1TEST串口助2、串口助手發(fā)送控制命令給開發(fā)發(fā)送命令格式為:S……E 第六 3.6.1STM32內(nèi)部集成定時(shí)器功3.6.2代碼解voidTIM2_Init(u16auto_data,u16{ Ft定時(shí)器時(shí)鐘以計(jì)數(shù)5000次為500ms第七 輸出3.7.1利用STM32內(nèi)部集成的定時(shí)器實(shí)現(xiàn)輸出3.7.2代碼解TIM5TIM_OCInitStructure.TIM_OCMode=1;//選擇定時(shí)器模式脈沖寬度調(diào)制模式TIM_OCInitStructure.TIM_OutputStateTIM_OutputState_Enable;//比較TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;性:TIM輸出比較極性低TIM_OC1Init(TIM5,&TIM_OCInitStructure);//根據(jù)TTIM14OC1TIM_OC1PreloadConfig(TIM5,TIM_OCPreload_Enable);TIM5上的預(yù)裝載寄存器Ft //84M/84=1Mhz的計(jì)數(shù)頻率,重裝載值500,所頻率為 占空比 程序下進(jìn)去之后KEY0比減少10%KEY1比10%
第八 模數(shù)轉(zhuǎn)換3.8.1STM32內(nèi)部集成ADC3.8.2代碼解u16Get_Adc(u8 {ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_480Cycles //ADC1,ADC通道,480個(gè)周期,提高采樣時(shí)間可以提高精確 ADC_SoftwareStartConv(ADC1);//使能指定的 的軟件轉(zhuǎn)換啟動(dòng)功 while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//等待轉(zhuǎn)換結(jié)束returnADC_GetConversionValue(ADC1);//返回最近一次ADC1該函數(shù)返回測的通道的模擬3.8.3程序下進(jìn)去之后,PA0接入所測量的模擬電壓,屏幕會(huì)顯示接入的模第九 數(shù)模轉(zhuǎn)換3.9.1STM32內(nèi)部集成DAC3.9.2代碼解//doubletemp=temp*4096/3.3;temp=temp*4096/3.3;//12位的故為*返回*參數(shù):vol:0~3300,代表* 能:設(shè)置通道*返回*參數(shù):vol:0~3300,代表* 能:設(shè)置通道1輸出電* 稱:*************voidDac1_Set_Vol(u16{3.9.3該例程為PA4作為DAC輸出電壓,PA6作為ADC模擬電壓輸入,實(shí)驗(yàn)時(shí)需要用一根杜邦線連接PA4與PA6,此時(shí)DA(PA)輸出的電壓值輸入到PA6,屏幕也會(huì)實(shí)時(shí)顯示輸出的電壓值的數(shù)字值、模擬值大小和測得的ADC輸入電壓的模擬值。按KY0CY1DAC輸出電壓減少。
第十 串口2-由于485接于串口2并且中間用跳針隔開,所以在使用串口2 //循環(huán)發(fā) //循環(huán)發(fā)RvoidRS485_Send_Data(u8*buf,u8{u8 //設(shè)置為 //發(fā)送數(shù)發(fā)發(fā)送結(jié)}//發(fā)送完設(shè)置為接//等}RS485_TX_EN一般設(shè)置為“0于接收狀態(tài),當(dāng)什么時(shí)候需要發(fā)送的才設(shè)置為發(fā)送,發(fā)送完又設(shè)置成接收,使485一直處于接收狀voidRS485_Receive_Data(u8*buf,u8voidRS485_Receive_Data(u8*buf,u8{u8u8接收結(jié){//接收到了數(shù)據(jù),且接delay_ms(10);10ms,10ms //默認(rèn)為}}//清//記錄本次數(shù)據(jù)}{}接收中斷觸發(fā)后,在中斷服務(wù)函數(shù)中,就會(huì)把接收的數(shù)值存RS485_receive_str[P4485AB接口,請將外485設(shè)備,按AA,BB的形式接起來。程序下進(jìn)去就可以跟板子進(jìn)行485通信。發(fā)什么控制命令格式跟第五章一樣,請參考第五章的10-2串口3-TTL實(shí)驗(yàn)跟第五章的使用操第十一 ICCPB8與PB9為原生的硬件IICSTM32原生的IIC不穩(wěn)定,所以本例程程序使用普通IO口進(jìn)行模擬IIC通信協(xié)議。#defineSDA_IN() //PB9輸入模式#defineSDA_OUT(){GPIOB->MODER&=~(3<<18);GPIOB->MODER|=1<<18;}//PB9輸出模式AT24C02讀函數(shù) 稱:voidAT24C02_Read(u8ReadAddr,u8*pBuffer,u8參數(shù):ReadAddrpBuffer:數(shù)據(jù)數(shù)組首地址參數(shù):ReadAddrpBuffer:數(shù)據(jù)數(shù)組首地址返回參數(shù)voidAT24C02_Read(u8ReadAddr,u8*pBuffer,u8ReadNum){while(ReadNum--while(ReadNum--}名功void名功voidAT24C02_Write(u8WriteAddr,u8*pBuffer,u8里面的指定地址開始寫入指定個(gè)數(shù)的pBuffer參數(shù):WriteAddr**voidAT24C02_Write(u8WriteAddr,u8*pBuffer,u8WriteNum){{while(WriteNum--WriteNum:要寫入數(shù)據(jù)的}}}該例程需要配合串口1通信來完成1、接收串口1發(fā)來的數(shù)據(jù)程序開始運(yùn)行后,屏幕會(huì)顯示請用戶發(fā)送數(shù)據(jù)到串口Pleasesenddatatousart1,此時(shí)用戶就要通過串口助手向開發(fā)板發(fā)送數(shù)據(jù),據(jù),發(fā)送后數(shù)據(jù)存在receive_str[]數(shù)值中并在顯示屏顯示。2、將接收到的數(shù)據(jù)寫入KEY0按下,將串口1接收到的數(shù)據(jù) ]中數(shù)據(jù))寫入3、將寫入到24C02KEY1按下,將寫入到24C02中的數(shù)據(jù)讀出第十二 W25Q128接于STM32原生硬件SPI1//讀寫函該例程需要配合串口1通信來完成1、接收串口1發(fā)來的數(shù)據(jù)程序開始運(yùn)行后,屏幕會(huì)顯示請用戶發(fā)送數(shù)據(jù)到串口Pleasesenddatatousart1,此時(shí)用戶就要通過串口助手向開發(fā)板發(fā)送數(shù)的數(shù)據(jù),發(fā)送后數(shù)據(jù)存在receive_str[]數(shù)值中并在顯示屏顯示。2、將接收到的數(shù)據(jù)寫入KEY0按下,將串口1接收到的數(shù)據(jù) ]中數(shù)據(jù))寫入3、將寫入到W25Q128KEY1按下,將寫入到W25Q128中的數(shù)據(jù)讀出并顯第十三 CAN1與CAN2通使用CAN1和CAN2時(shí),記得短路帽都接于CAN//CAN模式選u8CAN1_mode=1;//CAN工作模式;0,普通模式;1,環(huán)回模u8CAN2_mode=1;//CAN工作模式;0,普通模式;1,環(huán)回模CAN1ModeInit(CANSJW1tq,CANBS26tq,CANdeNormalCAN初始化回環(huán)模式,波特CAN2ModeInit(CANSJW1tq,CANBS26tq,CANde_Normal);//CAN初始化回環(huán)模式,波特率3.13.3確保短路帽都接到兩個(gè)CAN端。如下圖1、CAN模式設(shè)CAN的工作模式有回環(huán)模式和回環(huán)模式只要一個(gè)can自己就能工作,自普通模式,需要兩個(gè)CAN。這時(shí)需要連接兩個(gè)CAN的H和L2、發(fā)送與接收數(shù)據(jù):CAN1的發(fā)送由KEY0控制,CAN2的發(fā)送由KEY3控制回環(huán)模式下,按下KEY0,CAN1發(fā)送數(shù)據(jù),將在CAN1的介紹區(qū)域顯示,CAN2也是如此,只是CAN2發(fā)送按下的是KEY3;普通模式下,連接好兩個(gè)can的接口H與L,按下KEY0,CAN1發(fā)送數(shù)據(jù),CAN2的介紹區(qū)域顯示,證明CAN1發(fā)送數(shù)據(jù),CAN2已經(jīng)接收到,實(shí)現(xiàn)兩個(gè)can的通信。CAN2同理操作。第十四 RTC實(shí)時(shí)時(shí)STM32F4時(shí)時(shí)(RTC)相對(duì)STM32F1來說,改進(jìn)了不少,帶了日歷功能了,STM32F4RTC,是一個(gè)獨(dú)BCD定時(shí)器/計(jì)數(shù)器。RTC提供一個(gè)日歷時(shí)鐘(包含年月日時(shí)分秒信息、兩個(gè)可編程鬧鐘(ALARMAALARMB)中斷,以及一個(gè)具有中斷功能的周期性可編程喚醒標(biāo)志。RTC還包含用于管理低功耗模式的自動(dòng)喚醒單元F407的RTC就是一個(gè)時(shí),代碼操作也是操作對(duì)應(yīng)的寄器,比如年月日時(shí)分秒寄存器。所以代碼看起來簡單。請用戶看下程代碼3.14.3程序進(jìn)去后,RTC時(shí)鐘初始化后開始跑動(dòng),并在液晶屏上每1、長按KEY3秒進(jìn)入調(diào)整2、按KEY2右移選擇你要調(diào)整的時(shí)間選項(xiàng)(年月日時(shí)分3、按KEY0數(shù)值加1,按KEY1數(shù)值減4、調(diào)整完時(shí)間,短按KEY3設(shè)置時(shí)第十五 漢字顯3.15.1硬件使用到SD卡和FLASHW25Q128將SD卡中存放的字庫,更新到W25Q128中,然后液晶屏顯示漢字從W25Q128取字庫。由于使用到SD卡,所以用文件系統(tǒng)操作比較方便。使用到文件系統(tǒng)/*************HanZiUse.lib調(diào)用更新字庫要用到的************/ //初始化內(nèi)部內(nèi)存池fsTF=(FATFS*)Mem_malloc(INSRAM,sizeof(FATFS));//為文件系統(tǒng)分配 //TF程序下進(jìn)去后,檢測W25Q128里面有沒有字庫,如沒有字庫,更新字庫。按KEY0可以更新字庫(從SD卡取字庫更新到W25Q128),按KEY1進(jìn)行漢字顯示測試。第十六 RTC農(nóng)歷顯該例程為RTC和漢字顯示結(jié)只要輸入公歷的日期就可以得到農(nóng)歷日期的字符*函數(shù)名稱:voidGetLunarCalendarStr(u16year,u8month,u8day,u8 參數(shù): 接收農(nóng)歷日期字符* 參數(shù): 接收農(nóng)歷日期字符*公歷*公歷**輸出參數(shù):* 明 返回*str="乙未年正月廿五voidGetLunarCalendarStr(u16year,u8month,u8day,u8*str){ *)"甲子年正月初一 if(GetChinaCalendar(year,month,day,(u8 StrCopyss(&str[0],(u8 StrCopyss(&str[2],(u8 ) StrCopyss(&str[6],(u8*)monthcode[NLyear[2]- StrCopyss(&str[10],(u8 StrCopyss(&str[10],(u8*)"初 StrCopyss(&str[12],(u8*)monthcode[(NLyear[3]-}程序下進(jìn)去后,檢測W25Q128里面有沒有字庫,如沒有字庫,更新字庫。接著就顯示時(shí)間和公歷農(nóng)歷的日期,還有節(jié)氣。如需調(diào)整時(shí)間,請參照第十四章的RTC實(shí)驗(yàn),操作與其一模一樣。第十七 溫度傳感器獲取溫度{ //ds1820start DS18B20_Write_Byte(0xcc);//skip DS18B20_Write_Byte(0xbe);// TL=DS18B20_Read_Byte();// TH=DS18B20_Read_Byte();// temp=0;//溫度 }elsetemp=1;//溫度為 tem=TH;//獲得高 tem+=TL;//獲得底 tem=(double)tem*0.625;//轉(zhuǎn) 此時(shí)的轉(zhuǎn)換已經(jīng)把溫度擴(kuò)大10 if(temp)returntem;//返回溫 }程序下進(jìn)去后,每200ms溫度值,并且在顯示屏顯示。LED0閃爍顯示系統(tǒng)正在運(yùn)行。第十八 紅外傳感器說明:Ir_Record[4];voidIr_Decode(void)u8i,j,u8IR_OK=k=for(i0;i //4 for(j1;j if(Record> //大于某值為1,這個(gè)和晶振有絕對(duì)關(guān)系,這12M計(jì)算,此值可以有一定 Value=}{Value=;}if(j<{}}Value=}Decode_OK=1;//處理完畢標(biāo)志位置}電路硬件設(shè)計(jì)紅外的接口接于普通IO口,所以使用外部中斷檢測紅外數(shù)據(jù)信號(hào)程序下進(jìn)去后,按下紅外,屏幕會(huì)顯示相應(yīng)的鍵值第十九 觸摸按鍵掃描,type:0,屏幕坐標(biāo);1,物理坐標(biāo)(校準(zhǔn)等特殊場合用voidRTouch_Scan(u8 if(PEN==0)//有按鍵按下 物理坐 else //將結(jié)果轉(zhuǎn)換為 //建抬 注意參數(shù):XupXdownYupYdown,up為觸摸按下后手抬起后返回的按鍵值,down為觸摸按下就返回的按鍵值。第二十 數(shù)據(jù)轉(zhuǎn)換通使用232、485和CAN相關(guān)電路數(shù)據(jù)轉(zhuǎn)換函數(shù)void { }void { }void { void { }void { void }由于232485采用的是中斷模式,故在中斷接收函數(shù)中處理據(jù)轉(zhuǎn)換當(dāng)接收到數(shù)據(jù)時(shí),原樣從485或232和can1發(fā)出去,而則采用掃描方式在主函數(shù)中每隔 檢測接收函數(shù)程序下進(jìn)去后,當(dāng)串口助手發(fā)送數(shù)據(jù)給232,232的串口1接收到數(shù)據(jù)后會(huì)從485和can原樣發(fā)出去剛才從 那里接收到的數(shù)據(jù)。和can1 U盤由于USBCAN用IO口所以在使用USB時(shí)候需要將短路帽連接在USB端。就是P21USB_DM1USB_D-,USB_DP1USB_D+。U* 能:讀U 參數(shù):buf:* 能:讀U 參數(shù):buf:讀數(shù)據(jù) sector:扇區(qū) cnt:扇區(qū)個(gè) u8USBH_UDISK_Read(u8*buf,u32sector,u32cnt){ u8 /連接還存在,且是APP測試狀 USBH_MSC_HandleBOTXfer(&USB_OTG_Core res=1;//讀寫錯(cuò) }else }U* 能:寫U 參數(shù):buf:* 能:寫U 參數(shù):buf:寫數(shù)據(jù) sector:扇區(qū) cnt:扇區(qū) u8USBH_UDISK_Write(u8*buf,u32sector,u32cnt){ u8 /連接還存在,且是APP測試狀 USBH_MSC_HandleBOTXfer(&USB_OTG_Core res=1;//讀寫錯(cuò) }else }程序下進(jìn)去后,屏幕會(huì)顯示U盤的總?cè)萘?TCP服務(wù)器數(shù)據(jù)收發(fā)實(shí)由于網(wǎng)WIFI接口3.23.2代碼解請仔細(xì)看程序代雙排針P5的6個(gè)短路帽記得都接上去,程序下進(jìn)去后,屏幕會(huì)顯示開發(fā)板作為服務(wù)器的IP和端,此時(shí):1、設(shè)置電腦本地IP地址由于是開發(fā)板作為服務(wù)器,電腦網(wǎng)絡(luò)助手做客戶端,所以客戶端的設(shè)置的IP地址跟開發(fā)板作為服務(wù)器所的程序代碼沒聯(lián)系,這邊電腦本地IP地址后面的68,用戶可自行設(shè)置。這邊設(shè)置68是要跟后續(xù)的例程統(tǒng)一。注意:如果使用的是筆記本電腦,使用該例程要禁用無線網(wǎng)絡(luò)2、打開網(wǎng)絡(luò)助手設(shè)置由于是開發(fā)板選擇客戶端,服務(wù)器IP設(shè)置跟開發(fā)板程序代碼一致。程序代碼IP為:192.168.1.240端2040。3、實(shí)驗(yàn)現(xiàn)前面都設(shè)置好后,網(wǎng)絡(luò)助手點(diǎn)擊連接,網(wǎng)絡(luò)助手就連接上開發(fā)板的服務(wù)器。之后點(diǎn)擊發(fā)送。此時(shí)就是客戶端向服務(wù)器發(fā)送數(shù)據(jù),服務(wù)器接到數(shù)據(jù)后,將接收到的數(shù)據(jù)原封不動(dòng)的發(fā)回給客戶端。 TCP客戶端數(shù)據(jù)收發(fā)實(shí)同第二十三3.24.2代碼解請仔細(xì)看程序代雙排針P5的6個(gè)短路帽記得都接上去,程序下進(jìn)去后,屏幕會(huì)顯示開發(fā)板作為客戶端的IP和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024工程設(shè)計(jì)合同范文
- 2024上海市汽車買賣合同
- 2024新版廣告公司經(jīng)營合同協(xié)議書
- 2024建筑材料采購合同范本建筑材料供應(yīng)合同范本2
- 水果種植面臨的問題與挑戰(zhàn)
- 2024荒地承包合同范文
- 基于GIS的數(shù)字化農(nóng)業(yè)精準(zhǔn)施肥與灌溉技術(shù)
- 嬰兒護(hù)膚品的選擇與安全性評(píng)估考核試卷
- 家長會(huì)溝通技巧
- 避免電子產(chǎn)品對(duì)眼睛的傷害
- 高中生知識(shí)搶答競賽題
- 幼兒園大班語言繪本《月亮的味道》課件
- 人教版《道德與法治》七年級(jí)上冊 成長的節(jié)拍 復(fù)習(xí)教案
- 《中華商業(yè)文化》第六章
- 醫(yī)院玻璃采光頂玻璃雨棚施工方案
- 運(yùn)籌學(xué)-隨機(jī)規(guī)劃課件
- 《電阻》說課課件
- 同濟(jì)外科學(xué)課件之頸腰椎退行性疾病
- 路易斯·康作品分析課件
- 杜邦杜邦工程塑料課件
- 人身保險(xiǎn)產(chǎn)品定價(jià)原理課件
評(píng)論
0/150
提交評(píng)論