STM32 帶can通訊 485 串口 232串口通訊 中文件資料 最小系統(tǒng)說(shuō)明書(shū)_第1頁(yè)
STM32 帶can通訊 485 串口 232串口通訊 中文件資料 最小系統(tǒng)說(shuō)明書(shū)_第2頁(yè)
STM32 帶can通訊 485 串口 232串口通訊 中文件資料 最小系統(tǒng)說(shuō)明書(shū)_第3頁(yè)
STM32 帶can通訊 485 串口 232串口通訊 中文件資料 最小系統(tǒng)說(shuō)明書(shū)_第4頁(yè)
STM32 帶can通訊 485 串口 232串口通訊 中文件資料 最小系統(tǒng)說(shuō)明書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

深圳軒微勝電子科技STM32全功能工控板最小系統(tǒng)板STM32F103C8T6最小系統(tǒng)帶CAN485232說(shuō)明書(shū)目錄:全功能STM32工控系統(tǒng)板最小系統(tǒng)板功能介紹全功能STM32工控系統(tǒng)板最小系統(tǒng)板原理圖解析全功能STM32工控系統(tǒng)板最小系統(tǒng)板配套資料can程序設(shè)計(jì)源代碼和485程序設(shè)計(jì)源代碼5、總結(jié)6、公司信息全功能STM32工控系統(tǒng)板介紹:STM32最小系統(tǒng)板主要協(xié)助廣大工程師與學(xué)生在產(chǎn)品調(diào)試、新產(chǎn)品開(kāi)發(fā),樣機(jī)測(cè)試,參加大賽、畢業(yè)設(shè)計(jì)等領(lǐng)域的應(yīng)用和開(kāi)發(fā),全功能STM32工控系統(tǒng)板最小系統(tǒng)板的主要特點(diǎn)有:全功能通信系統(tǒng):集成CAN通訊,485通訊,232串口通訊于一身,方便各種通信的切換使用。標(biāo)準(zhǔn)下載口:國(guó)際標(biāo)準(zhǔn)的Jlink下載口,同時(shí)兼容通信程序下載,便捷可靠。寬電源接口:適應(yīng)工控需求的電源,無(wú)論在什么系統(tǒng)上應(yīng)用,系統(tǒng)自動(dòng)識(shí)別電源進(jìn)行調(diào)整,不需要外接電源,方便應(yīng)用。工業(yè)應(yīng)用級(jí)布線(xiàn),采用多層板設(shè)計(jì),公共電源和地完全隔離,加大了過(guò)載能力,抗干擾能力強(qiáng)。體積小,方便安裝應(yīng)用跳帽設(shè)計(jì),方便多重狀態(tài)組合圖一:功能原理圖/item.htm?spm=a1z10.1-c.w4004-9605616956.6.v1FXtM&id=43719925208全功能STM32工控系統(tǒng)板原理圖解析:2.1按鍵與LED電路:2.2CAN接口電路:2.3485接口電路:2.4擴(kuò)展電源接口:2.5IO接口:2.6JTAG電路2.7主控CPU電路:2.8復(fù)位電路:2.9電源電路:2.10啟動(dòng)引導(dǎo)電路:全功能STM32工控系統(tǒng)板最小系統(tǒng)板配套資料:配套350MB資料,包括Stm32系統(tǒng)詳解,Stm32各種詳細(xì)實(shí)驗(yàn)源代碼和各類(lèi)芯片的技術(shù)資料,程序設(shè)計(jì)的技術(shù)資料can程序源代碼和485程序源代碼4.1CAN源代碼#ifndef__CAN_H#define __CAN_H#include"stm32f10x.h"voidCAN_INIT(void);voidcan_tx(u8Data1,u8Data2);voidcan_rx(void);voidCAN_NVIC_Configuration(void);voidCAN_GPIO_Config(void);#endif/*__CAN_H*//*****************************************文件名:can.c*描述:CAN測(cè)試應(yīng)用函數(shù)庫(kù)。*實(shí)驗(yàn)平臺(tái):MINISTM32開(kāi)發(fā)板基于STM32F103C8T6*硬件連接:-----------------*| ||PB8-CAN-RX|*|PB9-CAN-TX|*||*-----------------*庫(kù)版本:ST3.0.0 **********************************************************/#include"can.h"#include"led.h"#include"stdio.h"typedefenum{FAILED=0,PASSED=!FAILED}TestStatus;/*在中斷處理函數(shù)中返回*/__IOuint32_tret=0;volatileTestStatusTestRx; /*CANRX0中斷優(yōu)先級(jí)配置*/voidCAN_NVIC_Configuration(void){NVIC_InitTypeDefNVIC_InitStructure; /*ConfiguretheNVICPreemptionPriorityBits*/ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); #ifdefVECT_TAB_RAM /*SettheVectorTablebaselocationat0x20000000*/ NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0); #else/*VECT_TAB_FLASH*/ /*SettheVectorTablebaselocationat0x08000000*/ NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0); #endif /*enablinginterrupt*/ NVIC_InitStructure.NVIC_IRQChannel=USB_LP_CAN1_RX0_IRQn;; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure);}/*CANGPIO和時(shí)鐘配置*/voidCAN_GPIO_Config(void){GPIO_InitTypeDefGPIO_InitStructure;/*復(fù)用功能和GPIOB端口時(shí)鐘使能*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB,ENABLE); /*CAN1模塊時(shí)鐘使能*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1,ENABLE);/*ConfigureCANpin:RX*/ //PB8GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; //上拉輸入GPIO_Init(GPIOB,&GPIO_InitStructure);/*ConfigureCANpin:TX*///PB9GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//復(fù)用推挽輸出GPIO_Init(GPIOB,&GPIO_InitStructure); //#defineGPIO_Remap_CANGPIO_Remap1_CAN1本實(shí)驗(yàn)沒(méi)有用到重映射I/OGPIO_PinRemapConfig(GPIO_Remap1_CAN1,ENABLE);}/* CAN初始化*/voidCAN_INIT(void){CAN_InitTypeDefCAN_InitStructure;CAN_FilterInitTypeDefCAN_FilterInitStructure;CanTxMsgTxMessage;/*CANregisterinit*/CAN_DeInit(CAN1); //將外設(shè)CAN的全部寄存器重設(shè)為缺省值CAN_StructInit(&CAN_InitStructure);//把CAN_InitStruct中的每一個(gè)參數(shù)按缺省值填入/*CANcellinit*/CAN_InitStructure.CAN_TTCM=DISABLE;//沒(méi)有使能時(shí)間觸發(fā)模式CAN_InitStructure.CAN_ABOM=DISABLE;//沒(méi)有使能自動(dòng)離線(xiàn)管理CAN_InitStructure.CAN_AWUM=DISABLE;//沒(méi)有使能自動(dòng)喚醒模式CAN_InitStructure.CAN_NART=DISABLE;//沒(méi)有使能非自動(dòng)重傳模式CAN_InitStructure.CAN_RFLM=DISABLE;//沒(méi)有使能接收FIFO鎖定模式CAN_InitStructure.CAN_TXFP=DISABLE;//沒(méi)有使能發(fā)送FIFO優(yōu)先級(jí)CAN_InitStructure.CAN_Mode=CAN_Mode_Normal;//CAN設(shè)置為正常模式CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;//重新同步跳躍寬度1個(gè)時(shí)間單位CAN_InitStructure.CAN_BS1=CAN_BS1_3tq;//時(shí)間段1為3個(gè)時(shí)間單位CAN_InitStructure.CAN_BS2=CAN_BS2_2tq;//時(shí)間段2為2個(gè)時(shí)間單位CAN_InitStructure.CAN_Prescaler=60;//時(shí)間單位長(zhǎng)度為60 CAN_Init(CAN1,&CAN_InitStructure);//波特率為:72M/2/60(1+3+2)=0.1即100K/*CANfilterinit*/CAN_FilterInitStructure.CAN_FilterNumber=1;//指定過(guò)濾器為1CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;//指定過(guò)濾器為標(biāo)識(shí)符屏蔽位模式CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;//過(guò)濾器位寬為32位CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;//過(guò)濾器標(biāo)識(shí)符的高16位值CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;// 過(guò)濾器標(biāo)識(shí)符的低16位值CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;//過(guò)濾器屏蔽標(biāo)識(shí)符的高16位值CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;// 過(guò)濾器屏蔽標(biāo)識(shí)符的低16位值CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;//設(shè)定了指向過(guò)濾器的FIFO為0CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;//使能過(guò)濾器CAN_FilterInit(&CAN_FilterInitStructure);// 按上面的參數(shù)初始化過(guò)濾器/*CANFIFO0messagependinginterruptenable*/CAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE);//使能FIFO0消息掛號(hào)中斷}/*發(fā)送兩個(gè)字節(jié)的數(shù)據(jù)*/voidcan_tx(u8Data1,u8Data2){CanTxMsgTxMessage;TxMessage.StdId=0x00; //標(biāo)準(zhǔn)標(biāo)識(shí)符為0x00TxMessage.ExtId=0x0000;//擴(kuò)展標(biāo)識(shí)符0x0000TxMessage.IDE=CAN_ID_EXT;//使用標(biāo)準(zhǔn)標(biāo)識(shí)符TxMessage.RTR=CAN_RTR_DATA;//為數(shù)據(jù)幀TxMessage.DLC=2; // 消息的數(shù)據(jù)長(zhǎng)度為2個(gè)字節(jié)TxMessage.Data[0]=Data1;//第一個(gè)字節(jié)數(shù)據(jù)TxMessage.Data[1]=Data2;//第二個(gè)字節(jié)數(shù)據(jù)CAN_Transmit(CAN1,&TxMessage);//發(fā)送數(shù)據(jù)}/*USB中斷和CAN接收中斷服務(wù)程序,USB跟CAN公用I/O,這里只用到CAN的中斷。*/voidUSB_LP_CAN1_RX0_IRQHandler(void){CanRxMsgRxMessage;RxMessage.StdId=0x00;RxMessage.ExtId=0x00;RxMessage.IDE=0;RxMessage.DLC=0;RxMessage.FMI=0;RxMessage.Data[0]=0x00;RxMessage.Data[1]=0x00;CAN_Receive(CAN1,CAN_FIFO0,&RxMessage);//接收FIFO0中的數(shù)據(jù)if((RxMessage.Data[0]==0x99)&&(RxMessage.Data[1]==0xbb)){LED1(0);LED2(1);}if((RxMessage.Data[0]==0x55)&&(RxMessage.Data[1]==0x77)){LED1(1);LED2(0);}}4.2485程序源代碼/*****************************************文件名:main.c*描述:給相同兩個(gè)MINI板下載此程序后,按下一個(gè)板子上的按鍵,可以點(diǎn)亮另一個(gè)板子*上對(duì)應(yīng)的LED。兩個(gè)板子不分主從。*實(shí)驗(yàn)平臺(tái):MINISTM32開(kāi)發(fā)板基于STM32F103C8T6*庫(kù)版本:ST3.0.0 **********************************************************/#include"stm32f10x.h"#include"usart1.h"#include"led.h"voidDelay(vu32nCount){for(;nCount!=0;nCount--);}/*按鍵管腳初始化*/voidKeyInit(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能外設(shè)時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能外設(shè)時(shí)鐘GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;//最高輸出速率10MHzGPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//上拉輸入GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;//最高輸出速率10MHzGPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//上拉輸入GPIO_Init(GPIOA,&GPIO_InitStructure);}/*檢測(cè)是否有按鍵按下*/voidGetKey(void){if(Bit_RESET==GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)){Delay(1000000);//去抖動(dòng)//去抖動(dòng)if(Bit_RESET==GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)){while(Bit_RESET==GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)){;}//等待按鍵釋放RS485_SendByte(0X02); LED1(1);LED2(1);}}if(Bit_RESET==GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)){Delay(1000000);//去抖動(dòng)//去抖動(dòng)if(Bit_RESET==GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)){while(Bit_RESET==GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)){;}//等待按鍵釋放RS485_SendByte(0X01); LED1(1);LED2(1);}}}/*USART3接收中斷配置*/voidNVIC_Configuration(void){NVIC_InitTypeDefNVIC_InitStructure;/*ConfiguretheNVICPreemptionPriorityBits*/NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);/*EnabletheUSART1Interrupt*/NVIC_InitStructure.NVIC_IRQChannel=USART3_IRQn;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);}intmain(void){ SystemInit();//配置系統(tǒng)時(shí)鐘為72M KeyInit(); //按鍵管腳初始化 LED_GPIO_Config();//LED管腳初始化 NVIC_Configuration();//USART3接收中斷配置 USART3_int();//USART1配置 while(1){ GetKey();//檢測(cè)是否有按鍵按下}}/*****************************************文件名:usart1.c*描述:配置USART3*實(shí)驗(yàn)平臺(tái):MINISTM32開(kāi)發(fā)板基于STM32F103C8T6*硬件連接:------------------------*|PA9-USART1(Tx)|*|PA10-USART1(Rx)|*------------------------*庫(kù)版本:ST3.0.0***********************************************************************************/#include"usart1.h" /*RE跟GPIOB1管腳相連*/#defineSet_REGPIO_SetBits(GPIOB,GPIO_Pin_1); #defineClr_REGPIO_ResetBits(GPIOB,GPIO_Pin_1);/*DE跟GPIOB0管腳相連*/#defineSet_DEGPIO_SetBits(GPIOB,GPIO_Pin_0);#defineClr_DEGPIO_ResetBits(GPIOB,GPIO_Pin_0);voidDelayNuS(unsignedinti){unsignedchart=0;for(;i>0;i--){for(t=0;t<2;t++){}}}/*配置USART3*/voidUSART3_Config(void){ GPIO_InitTypeDefGPIO_InitStructure; USART_InitTypeDefUSART_InitStructure; /*使能USART3時(shí)鐘*/ RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//使能外設(shè)時(shí)鐘 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOB,&GPIO_InitStructure); /*USART3使用IO端口配置*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//復(fù)用推挽輸出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //浮空輸入GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化GPIOA /*USART3工作模式配置*/ USART_InitStructure.USART_BaudRate=9600; //波特率設(shè)置:9600 USART_InitStructure.USART_WordLength=USART_WordLength_8b; //數(shù)據(jù)位數(shù)設(shè)置:8位 USART_InitStructure.USART_StopBits=USART_StopBits_1; //停止位設(shè)置:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論