/* Private variables ---------------------------------------------------------*/
uint16_t CAN_ID;
uint8_t CAN_DATA0,CAN_DATA1,CAN_DATA2,CAN_DATA3,CAN_DATA4,CAN_DATA5,CAN_DATA6,CAN_DATA7;
uint8_t CanFlag,Display;
void CAN_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* CAN Periph clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ,ENABLE);
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);
/* Configure CAN pin: TX */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Configure CAN pin: RX */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// GPIO_PinRemapConfig(GPIO_Remap1_CAN1 , ENABLE);
}
void CAN_NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
#ifdef VECT_TAB_RAM
/* Set the Vector Table base location at 0x20000000 */
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else /* VECT_TAB_FLASH */
/* Set the Vector Table base location at 0x08000000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
#endif
/* enabling interrupt */
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);
}
void can_init(void)
{
CAN_InitTypeDef CAN_InitStructure;
CAN_FilterInitTypeDef CAN_FilterInitStructure;
CAN_GPIO_Config();
CAN_NVIC_Configuration();
/* CAN register init */
CAN_DeInit(CAN1);
CAN_StructInit(&CAN_InitStructure);
/* CAN cell init */
CAN_InitStructure.CAN_TTCM = DISABLE; /* 時(shí)間觸發(fā)禁止, 時(shí)間觸發(fā):CAN硬件的內(nèi)部定時(shí)器被激活,并且被用于產(chǎn)生時(shí)間戳 */
CAN_InitStructure.CAN_ABOM = DISABLE; /* 自動(dòng)離線禁止,自動(dòng)離線:一旦硬件監(jiān)控到128次11個(gè)隱性位,就自動(dòng)退出離線狀態(tài)。在這里要軟件設(shè)定后才能退出 */
CAN_InitStructure.CAN_AWUM = DISABLE; /* 自動(dòng)喚醒禁止,有報(bào)文來的時(shí)候自動(dòng)退出休眠*/
CAN_InitStructure.CAN_NART = DISABLE; /* 報(bào)文重傳, 如果錯(cuò)誤一直傳到成功止,否則只傳一次 */
CAN_InitStructure.CAN_RFLM = DISABLE; /* 接收FIFO鎖定, 1--鎖定后接收到新的報(bào)文摘不要,0--接收到新的報(bào)文則覆蓋前一報(bào)文*/
CAN_InitStructure.CAN_TXFP = DISABLE; /* 發(fā)送優(yōu)先級(jí) 0---由標(biāo)識(shí)符決定 1---由發(fā)送請(qǐng)求順序決定*/
CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; /* 模式*/
CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; /* 重新同步跳寬,只有can硬件處于初始化模式時(shí)才能訪問這個(gè)寄存器 */
CAN_InitStructure.CAN_BS1 = CAN_BS1_9tq; /* 時(shí)間段1 */
CAN_InitStructure.CAN_BS2 = CAN_BS2_6tq; /* 時(shí)間段2 */
CAN_InitStructure.CAN_Prescaler = 8; /* 波特率預(yù)分頻數(shù) */
CAN_Init(CAN1, &CAN_InitStructure); // 初始化CAN1
/* 波特率計(jì)算方法 */
/* CANbps= Fpclk/((BRP+1)*((Tseg1+1)+(Tseg2+1)+1) 此處計(jì)算為 CANbps=64000000/(16*(13+2+1))=250kHz */
/* 配置大方向: Tseg1>=Tseg2 Tseg2>=tq; Tseg2>=2TSJW */
/* 使用CAN波特率計(jì)算器得到CANBTR = 0x001C000F 具體某些位對(duì)應(yīng)SJW BS1 BS2 介紹網(wǎng)址http://blog.csdn.net/flydream0/article/details/8170185 */
if (CAN_Init(CAN1,&CAN_InitStructure) == CANINITFAILED) //F
{
rt_kprintf("CAN error \r\n");
/* 初始化時(shí)先設(shè)置CAN_MCR的初始化位 */
/* 然后查看硬件是否真的設(shè)置了CAN_MSR的初始化位來確認(rèn)是否進(jìn)入了初始化模式 */
}
/* 配置CAN過濾器 */
/* 32位對(duì)應(yīng)的id */
/* stdid[10:0],extid[17:0],ide,rtr */
/* 16位對(duì)應(yīng)的id */
/* stdid[10:0],ide,rtr,extid[17:15] */
/* 一般使用屏蔽模式 */
/* 要注意的是fifo接收存滿了中斷,還有就是fifo的概念,即取的一直是最早那一個(gè)數(shù)據(jù), 要釋放才能取下一個(gè)數(shù)據(jù) */
/* 常使用的中斷有 */
/* 1,有信息中斷,即fifo掛號(hào)中斷 */
/* 2,fifo滿中斷 */
/* 3,fifo滿之后又有信息來則中斷,即fifo溢出中斷 */
CAN_FilterInitStructure.CAN_FilterNumber=0; /* 過濾器0 */
CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask; /* 屏敝模式 */
CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit; /* 32位 */
CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000; /* 以下四個(gè)都為0, 表明不過濾任何id */
CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0; /* 能夠通過該過濾器的報(bào)文存到fifo0中 */
CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;
CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE); /* 掛號(hào)中斷, 進(jìn)入中斷后讀fifo的報(bào)文函數(shù)釋放報(bào)文清中斷標(biāo)志 */
CAN_FilterInit(&CAN_FilterInitStructure);
}
void CanWData(void)
{
CanTxMsg TxMessage;
#if 0
/* transmit 1 message */
// TxMessage.StdId=0x12;
// TxMessage.ExtId=0x34;
TxMessage.StdId=0x00; //???00
TxMessage.ExtId=0x00; //???00
TxMessage.IDE=CAN_ID_EXT;
TxMessage.RTR=CAN_RTR_DATA;
TxMessage.DLC=2;
// TxMessage.Data[0]=0xDE;
// TxMessage.Data[1]=0xCA;
TxMessage.Data[0]=0xBB; //???BB
TxMessage.Data[1]=0xBB; //???BB
CAN_Transmit(CAN1,&TxMessage);
#else
uint32_t ID = 0x5a5;
CAN_DATA0=rand()%0xff; CAN_DATA1=rand()%0xff;
CAN_DATA2=rand()%0xff; CAN_DATA3=rand()%0xff;
CAN_DATA4=rand()%0xff; CAN_DATA5=rand()%0xff;
CAN_DATA6=rand()%0xff; CAN_DATA7=rand()%0xff;
/* transmit */
TxMessage.StdId = ID; /* 設(shè)置標(biāo)準(zhǔn)id 注意標(biāo)準(zhǔn)id的最高7位不能全是隱性(1)。共11位 */
//TxMessage.ExtId = 0x00; //設(shè)置擴(kuò)展id 擴(kuò)展id共18位
TxMessage.RTR = CAN_RTR_DATA; /* 設(shè)置為數(shù)據(jù)幀 */
TxMessage.IDE = CAN_ID_STD; /* 使用標(biāo)準(zhǔn)id */
TxMessage.DLC = 8; /* 數(shù)據(jù)長(zhǎng)度, can報(bào)文規(guī)定最大的數(shù)據(jù)長(zhǎng)度為8字節(jié) */
TxMessage.Data[0] = CAN_DATA0;
TxMessage.Data[1] = CAN_DATA1;
TxMessage.Data[2] = CAN_DATA2;
TxMessage.Data[3] = CAN_DATA3;
TxMessage.Data[4] = CAN_DATA4;
TxMessage.Data[5] = CAN_DATA5;
TxMessage.Data[6] = CAN_DATA6;
TxMessage.Data[7] = CAN_DATA7;
CAN_Transmit(CAN1,&TxMessage); /* 返回這個(gè)信息請(qǐng)求發(fā)送的郵箱號(hào)0,1,2或沒有郵箱申請(qǐng)發(fā)送no_box */
#endif
}
void USB_LP_CAN1_RX0_IRQHandler(void)
{
CanRxMsg RxMessage;
int i=0;
CAN_Receive(CAN1, 0, &RxMessage);
for(i=0;i<8;i++)
printf("rxbuf[%d]:%d\r\n",i,RxMessage.Data[i]);
}
上一篇: STM32之CAN控制器
下一篇:STM32時(shí)鐘使能及應(yīng)用總結(jié)
推薦閱讀
史海拾趣
近年來,隨著數(shù)字化和智能化的快速發(fā)展,Eurotechnique也加快了數(shù)字化轉(zhuǎn)型和智能化升級(jí)的步伐。公司投入大量資金和資源,引進(jìn)先進(jìn)的數(shù)字化生產(chǎn)線和智能化設(shè)備,提高生產(chǎn)效率和產(chǎn)品質(zhì)量。同時(shí),Eurotechnique還加強(qiáng)了與互聯(lián)網(wǎng)、大數(shù)據(jù)等新技術(shù)領(lǐng)域的合作,推動(dòng)公司的數(shù)字化轉(zhuǎn)型和智能化升級(jí)。這些努力使得Eurotechnique在競(jìng)爭(zhēng)激烈的電子行業(yè)中保持了領(lǐng)先地位。
在公司的快速發(fā)展中,BERNSTEIN公司逐漸將目光投向了國際市場(chǎng)。通過與國際知名企業(yè)的合作與交流,公司不斷引進(jìn)先進(jìn)的技術(shù)和管理經(jīng)驗(yàn),提升了自身的競(jìng)爭(zhēng)力。同時(shí),BERNSTEIN公司的產(chǎn)品也逐漸在國際市場(chǎng)上贏得了廣泛的認(rèn)可和好評(píng),為公司的發(fā)展注入了新的動(dòng)力。
隨著業(yè)務(wù)的不斷發(fā)展,Cooler Master逐漸將觸角延伸至全球。集團(tuán)總部位于中國臺(tái)北,同時(shí)在大陸設(shè)立了制造基地,并在北美、歐洲、東亞及北京、上海等地設(shè)有辦事處或研發(fā)中心。這種全球化的布局使得Cooler Master能夠更好地了解各地市場(chǎng)的需求,進(jìn)而提供更加精準(zhǔn)的產(chǎn)品和服務(wù)。此外,公司還與多家全球500強(qiáng)品牌合作,為其提供散熱解決方案,進(jìn)一步鞏固了其在全球散熱領(lǐng)域的領(lǐng)導(dǎo)地位。
2010年3月15日,BLACK&DECKER迎來了公司歷史上的一個(gè)重要時(shí)刻——與史丹利公司合并組建史丹利百得公司。這一合并不僅使BLACK&DECKER獲得了更強(qiáng)大的資源和市場(chǎng)支持,還為其未來的發(fā)展提供了更廣闊的空間。合并后的史丹利百得公司致力于提供整合的五金工具、存儲(chǔ)設(shè)備和安防系統(tǒng)解決方案,以滿足全球消費(fèi)者的多樣化需求。通過整合雙方的優(yōu)勢(shì)資源和技術(shù)力量,史丹利百得公司有望在電子行業(yè)中取得更加輝煌的成就。
綜上所述,BLACK&DECKER公司在電子行業(yè)中的發(fā)展故事充滿了創(chuàng)新、進(jìn)取和成功的元素。從創(chuàng)立初期的艱苦創(chuàng)業(yè)到如今的全球領(lǐng)先品牌,BLACK&DECKER憑借其卓越的產(chǎn)品質(zhì)量、技術(shù)創(chuàng)新和市場(chǎng)拓展能力,贏得了消費(fèi)者的信任和市場(chǎng)的認(rèn)可。未來,隨著科技的不斷進(jìn)步和市場(chǎng)需求的不斷變化,BLACK&DECKER將繼續(xù)保持創(chuàng)新精神,推動(dòng)電子行業(yè)的持續(xù)發(fā)展。
Concord Semiconductor Corp自創(chuàng)立之初,便專注于半導(dǎo)體技術(shù)的研發(fā)與創(chuàng)新。公司在早期階段成功開發(fā)出一種高效能、低功耗的半導(dǎo)體芯片,這一創(chuàng)新成果迅速在行業(yè)內(nèi)引起關(guān)注。隨著技術(shù)的不斷完善和市場(chǎng)的廣泛認(rèn)可,公司的產(chǎn)品線逐漸豐富,客戶群體也不斷擴(kuò)大。技術(shù)創(chuàng)新成為Concord Semiconductor Corp發(fā)展的核心驅(qū)動(dòng)力,推動(dòng)公司不斷向前發(fā)展。
正在學(xué)DSP,但發(fā)覺DSP卻用處不大!前途也~~ 發(fā)覺DSP的用處真不大,而且價(jià)格有高。 做音視頻的編解碼,用專用的ASC電路成本更低廉,性能更高。應(yīng)為這種方案的廠家提供的選擇更多,成本更低廉。 至于控制領(lǐng)域,用 ARM7, STM32等CORTEX-M3性能價(jià)格更低廉. 例如用ARM7: LPC系列,AT91SAM7 ...… 查看全部問答∨ |
|
由于以前選用電池管理芯片,MAX1924V, 美信半導(dǎo)體不提供免費(fèi)的芯片。所以修改設(shè)計(jì),重新選用MAX17005B做為電池管理芯片,修改原理圖,并已經(jīng)到美信網(wǎng)站申請(qǐng)了芯片MAX17005B和MAX8790A LED驅(qū)動(dòng)芯片。最新原理圖如下: … 查看全部問答∨ |
|
使用IAR軟件仿真STM32程序,如何知道每條指令運(yùn)行的時(shí)間呢? 在哪個(gè)選項(xiàng)里面可以得到答案?我使用的是IAR for ARM 4.42版本的。… 查看全部問答∨ |
我們要求設(shè)計(jì)基于單片機(jī)的交流參數(shù)測(cè)試儀,我雖然有一點(diǎn)思路,但是還是很模糊,求求各位幫忙講解下原理,采集、參數(shù)好像有電壓、電流、功率… 查看全部問答∨ |
==========================================================================//-----------------------------------------------------// Design Name : uart // File Name : uart.v// : Simple UART// Coder&nb ...… 查看全部問答∨ |
使用proteus仿真430的時(shí)候設(shè)置什么的都對(duì)但是運(yùn)行起來proteus就提示芯片選擇錯(cuò)誤 IAR軟件里全部都設(shè)置好了,但是就是仿真不行,用的IAR FOR 430 5.5版本,proteus用的是7.9的。有誰遇到過這樣的問題嗎,請(qǐng)求幫助?。? … 查看全部問答∨ |
請(qǐng)大家推薦一塊BeagleBone用4寸800*480左右分辨率的TFT屏 正在畫BeagleBone的擴(kuò)展板,BeagleBone自帶了LCD控制器,輸出電平信號(hào),請(qǐng)大家推薦一塊4寸800*480左右分辨率的TFT屏,最好是不需要電平轉(zhuǎn)換直接就能用的,一經(jīng)采用可以贈(zèng)送一塊擴(kuò)展板或者其他的開發(fā)板,謝謝!… 查看全部問答∨ |
為什么我用兩個(gè)定時(shí)中斷會(huì)出現(xiàn)合并后就編譯出現(xiàn)亂碼??分開的編譯卻是正常的。求救! #include<reg52.h> #include <intrins.h> sbit p10=P1^0; //數(shù)碼管控制端 sbit p11=P1^1; sbit p12=P1^2; sbit p13=P1^3; sbit p20=P2^0; //按鍵控制端 sbit p21=P2^1; sbit p22=P2^2; sbit p27=P2^7; b ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 基于GPS自動(dòng)授時(shí)的無線智能控制器的設(shè)計(jì)
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- 基于HW2181B的航模無線遙控通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 應(yīng)對(duì)機(jī)器人“四高”,極海推出全球首款雙核Cortex-M52 MCU G32R501
- 非道路移動(dòng)機(jī)械透射式煙度計(jì)研究與實(shí)現(xiàn)
- 基于STM32F103的角磨機(jī)開關(guān)磁阻電機(jī)控制器的設(shè)計(jì)
- 大眾汽車宣布明年起其所有電動(dòng)車型全面轉(zhuǎn)向磷酸鐵鋰電池,升級(jí)至MEB Plus平臺(tái)
- 總產(chǎn)值破2000億,深圳要做“機(jī)器人第一城”?
- 鴻道Intewell操作系統(tǒng) 人形機(jī)器人底層操作系統(tǒng)
- 如何定位國產(chǎn)智駕芯片的終局價(jià)值?
- 新一代車規(guī)級(jí)數(shù)字功放電感VSAD-T系列 為汽車音響注入高保真基因
- 蜂巢能源快充電池突破:15分鐘充至滿電,提升30%效率
- 整車操作系統(tǒng)何以躋身智能汽車三大件?
- 人形機(jī)器人如何做到“手眼”協(xié)同+“大小腦”協(xié)同?
- 中國電池公司獲英國政府10億英鎊支持!
- 從游戲到智能駕駛,英偉達(dá)有哪些技術(shù)升級(jí)?
- 了解PI最新產(chǎn)品,評(píng)論、下載搶樓好禮送!
- 你玩板我有獎(jiǎng)|老板新玩還有獎(jiǎng)
- 學(xué)知識(shí),贏好禮|泰克半導(dǎo)體材料與器件測(cè)試技術(shù)電源特性篇!
- STM32嵌入式網(wǎng)絡(luò)開發(fā)套件,超震撼冰點(diǎn)價(jià)火爆開團(tuán)!
- TI機(jī)器人系統(tǒng)學(xué)習(xí)套件,低成本開啟你的電子工程課程實(shí)戰(zhàn)之旅
- 闖關(guān)贏好禮!美光出貨 232 層 NAND,擴(kuò)展 3D NAND 技術(shù)邊界
- 幫助他人,成就自己:EEWORLD月度問答榜(第5期)
- 黑格科技與趁早品牌牽手,推出的3D打印耳機(jī)會(huì)有市場(chǎng)嗎?
- 高級(jí)自動(dòng)駕駛一定要用到激光雷達(dá)嗎?
- 智能音箱這個(gè)“玩物”到底哪里好,熱得眾巨頭竟折腰?
- 新電動(dòng)汽車國標(biāo)GB 18384-2020的幾個(gè)關(guān)鍵變化點(diǎn)
- 博世中國2017年業(yè)績(jī)?nèi)〉脙晌粩?shù)強(qiáng)勁增長(zhǎng)
- 車禍曝光特斯拉收集數(shù)據(jù)存在缺陷:物理碰撞經(jīng)驗(yàn)不足
- 洗衣機(jī)新國標(biāo)“十一”正式實(shí)施
- 懸浮半空的炫酷“UFO” 實(shí)際是個(gè)抽油煙機(jī)
- 低壓降(LDO)穩(wěn)壓器之理想與現(xiàn)實(shí)
- 河海大學(xué)-泰克科技智能實(shí)驗(yàn)室在常州校區(qū)成立