国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

野火STM32電機(jī)系列(三)Cubemx配置CAN通信

這篇具有很好參考價(jià)值的文章主要介紹了野火STM32電機(jī)系列(三)Cubemx配置CAN通信。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

CAN接口:

PI9

PB9

1.配置CAN 通信參數(shù)

由于F4的 CAN外設(shè)掛載在APB1上,時(shí)鐘配置后APB1的時(shí)鐘速率為42MHz,目標(biāo)通信速率為1000KHz,由公式:

BaudRate = 1/NominalBitTime

NominalBitTime = 1tq + tBS1 +tBS2

設(shè)置參數(shù)如下:

CAN時(shí)鐘分頻參數(shù)為7,BS1為4,BS2為1,CAN模式為Nomal模式。

野火STM32電機(jī)系列(三)Cubemx配置CAN通信,stm32,單片機(jī),嵌入式硬件

生成工程

在can.c中添加如下函數(shù)

?野火STM32電機(jī)系列(三)Cubemx配置CAN通信,stm32,單片機(jī),嵌入式硬件

?野火STM32電機(jī)系列(三)Cubemx配置CAN通信,stm32,單片機(jī),嵌入式硬件

?野火STM32電機(jī)系列(三)Cubemx配置CAN通信,stm32,單片機(jī),嵌入式硬件

?

CAN_TxHeaderTypeDef TXHeader;
CAN_RxHeaderTypeDef RXHeader;


uint8_t TXmessage[8] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
uint8_t RXmessage[8] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

uint32_t pTxMailbox = 0;
uint32_t CAN_ID = 0x01;
int counT_A = 0;
int counT_B = 0;

void CAN_Config(void)
{
CAN_FilterTypeDef  sFilterConfig;
 
  /*配置CAN過(guò)濾器*/
  sFilterConfig.FilterBank = 0;                     //過(guò)濾器0
  sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
  sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
  sFilterConfig.FilterIdHigh = 0x0000;              //32位ID
  sFilterConfig.FilterIdLow = 0x0000;
  sFilterConfig.FilterMaskIdHigh = 0x0000;          //32位MASK
  sFilterConfig.FilterMaskIdLow = 0x0000;
  sFilterConfig.FilterFIFOAssignment = CAN_RX_FIFO0;//過(guò)濾器0關(guān)聯(lián)到FIFO0
  sFilterConfig.FilterActivation = ENABLE;          //激活濾波器0
  sFilterConfig.SlaveStartFilterBank = 14;
	
	
 if(HAL_CAN_ConfigFilter(&hcan1,&sFilterConfig) != HAL_OK)//初始化過(guò)濾器
 {
  Error_Handler();
 }
 if(HAL_CAN_Start(&hcan1) != HAL_OK)//打開can
 {
  Error_Handler();
 }
 if(HAL_CAN_ActivateNotification(&hcan1,CAN_IT_RX_FIFO0_MSG_PENDING) != HAL_OK)//開啟接受郵郵箱0掛起中斷
 {
  Error_Handler();
 }
 
   /*配置傳輸過(guò)程*/
  TXHeader.StdId = 0x321;
  TXHeader.ExtId = 0x01;
  TXHeader.RTR = CAN_RTR_DATA;
  TXHeader.IDE = CAN_ID_STD;
  TXHeader.DLC = 2;
  TXHeader.TransmitGlobalTime = DISABLE;

}

//發(fā)送函數(shù)
void CAN_senddata(CAN_HandleTypeDef *hcan,uint32_t can_id)
{
   TXHeader.StdId=can_id ;
	 TXHeader.ExtId=0x12345000;//0x12345000
	 TXHeader.DLC=8;
	 TXHeader.IDE=CAN_ID_EXT;
	 TXHeader.RTR=CAN_RTR_DATA;
	 TXHeader.TransmitGlobalTime = DISABLE;

    	HAL_CAN_AddTxMessage(hcan,&TXHeader,TXmessage,&pTxMailbox);

}
//接受函數(shù)
uint32_t CAN1_Receive_Msg(uint8_t *buf)
{
 	uint32_t i;
	uint8_t	RxData[8];
 
	if(HAL_CAN_GetRxFifoFillLevel(&hcan1, CAN_RX_FIFO0) != 1)//沒(méi)有接收到數(shù)據(jù),直接退出 
	{
		return 0xF1;
	}
 
	if(HAL_CAN_GetRxMessage(&hcan1, CAN_RX_FIFO0, &RXHeader, RxData) != HAL_OK)
	{
		return 0xF2;
	}
	
    for(i=0;i<RXHeader.DLC;i++)
    buf[i]=RxData[i];
	  return RXHeader.DLC;
}

頭文件聲明

野火STM32電機(jī)系列(三)Cubemx配置CAN通信,stm32,單片機(jī),嵌入式硬件

void CAN_Config(void);

extern uint8_t TXmessage[8];

extern uint8_t RXmessage[8];

extern uint32_t CAN_ID;

extern int counT_A;

extern int counT_B;

void CAN_senddata(CAN_HandleTypeDef *hcan,uint32_t can_id);

uint32_t CAN1_Receive_Msg(uint8_t *buf);

主函數(shù)添加

野火STM32電機(jī)系列(三)Cubemx配置CAN通信,stm32,單片機(jī),嵌入式硬件

?

?循環(huán)中設(shè)置1ms的發(fā)送周期

野火STM32電機(jī)系列(三)Cubemx配置CAN通信,stm32,單片機(jī),嵌入式硬件

?用CAN分析儀接受

野火STM32電機(jī)系列(三)Cubemx配置CAN通信,stm32,單片機(jī),嵌入式硬件

?完美文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-680018.html

到了這里,關(guān)于野火STM32電機(jī)系列(三)Cubemx配置CAN通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 搭建stm32電機(jī)控制代碼框架(三)——Stm32CubeMx配置ADC采樣

    搭建stm32電機(jī)控制代碼框架(三)——Stm32CubeMx配置ADC采樣

    電機(jī)控制另一個(gè)關(guān)鍵的模塊就是ADC采樣,這個(gè)模塊配置的好壞決定了采樣電流和電壓的精準(zhǔn)度,因此有必要對(duì)其進(jìn)行深入學(xué)習(xí)。 簡(jiǎn)介: STM32 在片上集成的ADC 外設(shè)非常強(qiáng)大。STM32F103xC、STM32F103xD 和STM32F103xE增強(qiáng)型產(chǎn)品內(nèi)嵌3個(gè)12位的ADC,每個(gè)ADC 共用多達(dá) 21 個(gè)外部通道,可以實(shí)現(xiàn)

    2024年02月13日
    瀏覽(32)
  • 搭建stm32電機(jī)控制代碼框架(二)——Stm32CubeMx配置定時(shí)器

    搭建stm32電機(jī)控制代碼框架(二)——Stm32CubeMx配置定時(shí)器

    搭建了基礎(chǔ)的環(huán)境,配置了一個(gè)簡(jiǎn)單的工程后,CubeMx的基本操作就會(huì)了。然后基于這個(gè)操作往下推進(jìn),開始對(duì)關(guān)鍵模塊定時(shí)器的攻略,這個(gè)部分需要先熟悉一下Stm32的定時(shí)器基本原理。 《STM32參考手冊(cè)》中僅對(duì)定時(shí)器的介紹就已經(jīng)占了100多頁(yè),這里就不一一展開,挑一些關(guān)鍵

    2024年02月06日
    瀏覽(21)
  • 【STM32+CUBEMX】TMC5160電機(jī)驅(qū)動(dòng)簡(jiǎn)要配置

    【STM32+CUBEMX】TMC5160電機(jī)驅(qū)動(dòng)簡(jiǎn)要配置

    TMC5160簡(jiǎn)介 ????????????????1.1、引腳圖 ?????????1.2、關(guān)鍵引腳 ?????????????? 1.2.1 模式選擇引腳 ?????????????????1.2.2 時(shí)鐘和SPI引腳 ??????????????????1.2.3 驅(qū)動(dòng)使能引腳 ?2.SPI發(fā)送數(shù)據(jù)結(jié)構(gòu) ????????發(fā)送到 TMC5160 的每個(gè)數(shù)據(jù)報(bào)由一個(gè)地

    2024年02月06日
    瀏覽(21)
  • 電機(jī)FOC控制(三)STM32 CUBEMX 配置ADC采樣

    電機(jī)FOC控制(三)STM32 CUBEMX 配置ADC采樣

    本文在電機(jī)FOC控制(二)STM32 CUBEMX 配置三相PWM互補(bǔ)輸出基礎(chǔ)上,繼續(xù)講述如何STM32 CUBEMX 配置ADC寄存器,使TIMER1 PWM互補(bǔ)輸出CC4觸發(fā)ADC注入采樣的過(guò)程。 打開Clock Configuration界面,將ADC設(shè)置為42.5MHz。 設(shè)定ADC1通道7和通道8為單端輸入: 設(shè)定ADC2通道6和通道7為單端輸入: ADCs_Comm

    2024年04月23日
    瀏覽(77)
  • CAN總線學(xué)習(xí)筆記 | STM32CubeMX配置CAN環(huán)回測(cè)試

    CAN總線學(xué)習(xí)筆記 | STM32CubeMX配置CAN環(huán)回測(cè)試

    CAN基礎(chǔ)知識(shí)介紹文中介紹了CAN協(xié)議的基礎(chǔ)知識(shí),以及STM32F4芯片的CAN控制器相關(guān)知識(shí),下面將通過(guò)實(shí)例,利用STM32CubeMX圖形化配置工具,來(lái)實(shí)現(xiàn)CAN通訊的環(huán)回測(cè)試 CAN是掛載在APB1總線上,設(shè)置PCLK1時(shí)鐘頻率到最大45MHz 激活CAN1,配置位時(shí)序參數(shù),其他基本參數(shù)以及工作模式(此處

    2024年02月11日
    瀏覽(42)
  • MKS SERVO42&57D 閉環(huán)步進(jìn)電機(jī)_系列12 STM32_CAN例程

    MKS SERVO42&57D 閉環(huán)步進(jìn)電機(jī)_系列12 STM32_CAN例程

    具備脈沖接口和RS485/CAN串行接口,支持MODBUS-RTU通訊協(xié)議,內(nèi)置高效FOC矢量算法。 硬件開源! 網(wǎng)盤: 08_例程-STM32系列(CAN) 設(shè)置波特率: 菜單 → CanRate → 500K 設(shè)置從機(jī)地址: 菜單 → CanID → 01 需要一個(gè)TTL轉(zhuǎn)CAN電平模塊。 接線說(shuō)明 代碼說(shuō)明 代碼功能:STM32 主板通過(guò)CAN接口讀取

    2024年02月10日
    瀏覽(26)
  • STM32的HAL庫(kù)開發(fā)系列 - CAN通信實(shí)例

    CAN通信是一種高效、可靠、靈活的數(shù)據(jù)傳輸方式,適用于各種應(yīng)用場(chǎng)景,在工業(yè)自動(dòng)化、汽車電子、醫(yī)療設(shè)備等領(lǐng)域有著廣泛的應(yīng)用。 但理解CAN通信的實(shí)際應(yīng)用,也不能全部只看軟件方面,還需要對(duì)硬件上也有了解。 在硬件上,CAN通信使用兩條線路:一條是數(shù)據(jù)線(CAN_H),

    2024年02月12日
    瀏覽(25)
  • 【STM32】cubeMX配置HAL庫(kù)驅(qū)動(dòng)L298N控制直流有刷電機(jī)

    【STM32】cubeMX配置HAL庫(kù)驅(qū)動(dòng)L298N控制直流有刷電機(jī)

    目錄 1.電機(jī)為什么需要驅(qū)動(dòng)板呢?為什么不能用控制器直接控制電機(jī)呢? 2.H橋電路介紹 3.L298N原理介紹 4.實(shí)物接線圖 5.CUBEMX配置 6.代碼 7. 演示視頻 L298N是常用來(lái)驅(qū)動(dòng)小型直流有刷電機(jī)(兩個(gè))和步進(jìn)電機(jī)(一個(gè))的電機(jī)驅(qū)動(dòng)板,其電路原理就是兩個(gè)H橋電路,控制原理是使用

    2024年02月16日
    瀏覽(78)
  • STM32 cubemx CAN
STM32 CAN初始化詳解

    STM32 cubemx CAN STM32 CAN初始化詳解

    接收用到的結(jié)構(gòu)體如下: CAN概念: ? ? ? ? 全稱Controller Area Network,是一種半雙工,異步通訊。 物理層: ? ? ? ? 閉環(huán):允許總線最長(zhǎng)40m,最高速1Mbps,規(guī)定總線兩端各有一個(gè)120Ω電阻,閉環(huán) ? ? ? ?開環(huán):最大傳輸距離1Km,最高速125Kbps,規(guī)定每根線串聯(lián)一個(gè)2.2kΩ的電阻,

    2024年02月13日
    瀏覽(29)
  • 搭建stm32電機(jī)控制代碼框架(一)——Stm32CubeMx入門

    搭建stm32電機(jī)控制代碼框架(一)——Stm32CubeMx入門

    任務(wù)是基于stm32f405芯片進(jìn)行展開,應(yīng)用的軟件是keil5和STM32CubeMx,這兩個(gè)軟件環(huán)境目前是已經(jīng)安裝好了,現(xiàn)在就可以開始展開工作了,這系列博客零散的記錄任務(wù)完成的過(guò)程,作為一個(gè)筆記方便后續(xù)回顧。 任務(wù)(一):用CubeMx控制一個(gè)引腳的高低電平 第一步: 在CubeMx中導(dǎo)入

    2024年02月06日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包