历史上的今天
返回首页

历史上的今天

今天是:2025年06月17日(星期二)

正在发生

2019年06月17日 | STM32CubeMX生成基于HAL库的Can收发配置

2019-06-17 来源:eefocus

HAL库 的应该用比较新潮,经常找不到资料。今天说说,在CAN开发中的应用。


一,发送。


static HAL_StatusTypeDef Can_MsgSend(uint32_t ID,uint8_t * pData,uint8_t len)

{

HAL_StatusTypeDef retSTD;

canTxMsg.StdId=ID;//0x500|(GetLocalID()&0xFF);

canTxMsg.IDE=CAN_ID_STD;

canTxMsg.RTR=CAN_RTR_DATA;

canTxMsg.DLC=len;

memcpy(canTxMsg.Data,pData,len);

SendErrorCount=0;


retSTD= HAL_CAN_Transmit(&hcan,200);

//retSTD= HAL_CAN_Transmit_IT(&hcan);

 

return retSTD;  

}




二,配置。


//基本配置


hcan.Instance = CAN;

  hcan.Init.Prescaler =138;// 100;

  hcan.Init.Mode =CAN_MODE_NORMAL;//CAN_MODE_LOOPBACK;// 

  hcan.Init.SJW = CAN_SJW_1TQ;

  hcan.Init.BS1 = CAN_BS1_7TQ;

  hcan.Init.BS2 = CAN_BS2_8TQ;

  hcan.Init.TTCM = DISABLE;

  hcan.Init.ABOM = DISABLE;

  hcan.Init.AWUM = DISABLE;

  hcan.Init.NART = DISABLE;

  hcan.Init.RFLM = DISABLE;

  hcan.Init.TXFP = DISABLE;

  if (HAL_CAN_Init(&hcan) != HAL_OK)

  {

    Error_Handler();

  }




//过滤器  


CAN_FilterConfTypeDefftcan;

ftcan.FilterIdHigh=0x0000;

ftcan.FilterIdLow=0x0000;

ftcan.FilterScale=CAN_FILTERSCALE_16BIT;

ftcan.FilterMaskIdHigh=0xFFFF;

ftcan.FilterMaskIdLow=0x0000;

ftcan.FilterMode=CAN_FILTERMODE_IDMASK;

 ftcan.FilterFIFOAssignment=CAN_USEFIFO;

ftcan.FilterNumber=0;

ftcan.FilterActivation=ENABLE;



HAL_CAN_ConfigFilter(&hcan, &ftcan);


//收发 缓冲


 hcan.pRxMsg=&canRxMsg; 

hcan.pTxMsg=&canTxMsg;  




三,回调函数


void HAL_CAN_TxCpltCallback(CAN_HandleTypeDef* hcan);

void HAL_CAN_RxCpltCallback(CAN_HandleTypeDef* hcan);

void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan);




四,设置中断接收.


HAL_CAN_Receive_IT(&hcan,CAN_USEFIFO); 每次接收中断中,要重新设置。



推荐阅读

史海拾趣

Ark-Les Connectors公司的发展小趣事

Ark-Les Connectors公司从一家小型电子连接器制造商起步,凭借其不断的技术创新,逐渐在行业中崭露头角。公司研发团队致力于开发高性能、高可靠性的连接器产品,满足日益增长的电子设备连接需求。通过对材料科学的深入研究,Ark-Les成功研发出新型耐高温、耐腐蚀的连接器材料,大大提高了产品的使用寿命和稳定性。这一创新不仅赢得了客户的广泛认可,也为公司带来了可观的市场份额。

Conflux公司的发展小趣事

作为一家具有社会责任感的企业,Conflux始终关注社会公益事业。公司积极参与扶贫、教育等公益活动,为社会做出积极贡献。同时,Conflux还注重环保和可持续发展,通过采用环保材料和节能技术,降低生产过程中的环境污染。这些举措不仅提升了公司的社会形象,也赢得了社会各界的广泛赞誉。

以上五个故事是虚构的,但反映了一个科技公司可能经历的发展阶段和策略选择。在现实中,一个公司的成长和发展往往涉及更多复杂的因素和决策过程。希望这些故事能够为您提供一些启发和参考。

Display Engineering Services公司的发展小趣事

Conflux公司自创立之初,便专注于区块链技术的研发与应用。在电子支付领域,公司团队成功研发出了一种高效、安全的分布式账本技术,这一技术突破迅速吸引了业界的关注。随后,Conflux与多家金融机构合作,推出了基于区块链技术的电子支付解决方案,不仅提高了交易速度,还大大降低了交易成本。这一系列的创新举措使Conflux在电子支付领域崭露头角,奠定了其在行业内的领先地位。

CWIND公司的发展小趣事

随着全球对环保和可持续发展的重视程度不断提高,CWIND公司积极响应这一趋势,将绿色环保理念融入到产品研发和生产过程中。公司投入大量资金和资源,研发出了一系列符合环保标准的电子产品,并优化了生产工艺,减少了废弃物和污染物的排放。这一举措不仅提升了CWIND的品牌形象,还为公司赢得了更多的市场份额。

EG & G Inc公司的发展小趣事

EG & G Inc公司成立于20世纪早期,最初专注于电子设备的研发和生产。公司凭借其技术优势和创新能力,在电子行业中逐渐崭露头角。在成立初期,EG & G Inc就与多家知名企业和研究机构建立了合作关系,共同推动电子技术的发展和应用。这些合作关系不仅为公司带来了技术上的支持,也为其在市场上的扩张奠定了基础。

GarrettCom公司的发展小趣事

研发:GarrettCom(现为Belden的一部分)始终将技术创新作为企业发展的核心驱动力。公司不断投入研发资源,致力于开发更加先进、可靠的工业网络通信产品。通过持续的技术创新,GarrettCom不仅推动了工业通信技术的进步,还为客户提供了更加高效、便捷的通信解决方案。

应用:这些创新产品被广泛应用于工业自动化、交通监控、能源管理等多个领域,为客户创造了巨大的价值。同时,GarrettCom还积极参与国际标准的制定和推广工作,为行业的标准化发展做出了积极贡献。

问答坊 | AI 解惑

求一个简单放大器的输出

如图示 其中Uout2为+2.5V电压      Uin 范围为0~5V 求解放大器输出信号的波形和幅度…

查看全部问答>

系统是WINCE5.0+Pxa300,WIFI是用的Marvell的8686

系统是WINCE5.0+Pxa300,WIFI是用的Marvell的8686  这是用于干什么的系统?是类似于xp的系统还是嵌入式开发系统…

查看全部问答>

电路板发热,电源芯片LT1085发热

我的电路板用一个1085-5V芯片转换成5V,用一个1085-3.3V转换成3.3V,5V给AD等外围芯片供电,3.3主要给核心板供电,我的程序运行一会,核心板,电源芯片就会很烫,电源芯片带的底板也很烫。功率也满足要求。请问各位高手该如何解决发热问题?…

查看全部问答>

求助一道很简单的题目

将内存单元1000-1030H中的内容复制到3000-3030H单元中去,原地址清0 我的代码在下面,下载地址1000H,自修改代码,他说改下载地址,自己内存放点东西,他要看到结果,不放东西全部是0,复制过去也没效果。老师很BT,要求十分严格。EMBESTIDE环境 ...…

查看全部问答>

求助ucgui时间获取函数!

本人的工作是将ucgui移植到nucleus系统上,nucleus系统时间的获取是通过将时钟节拍转化而来的,但本人对时钟节拍不怎么熟悉,按照自己的思路问题主要是出在到时钟节拍超出时钟节拍临界值时(其实本人也不清楚时钟节拍复位为0是怎么处理的),时 ...…

查看全部问答>

socket的建立

在vxworks下想实现socket的通讯,建立了一个虚拟机,里面跑的是vxworks,是服务端 在windows下,用VC实现的客户端。 问题是发现服务端的socket无法建立,不知是不是写错了,代码如下: netInit() {         struct sockad ...…

查看全部问答>

嵌入式技术交流群 24992320 欢迎加入啊

嵌入式技术交流群 24992320 欢迎加入啊 …

查看全部问答>

请问ST32复位时IO口处于什么状态?

                                 如题。我说的是复位过程中,而不是复位后。谢谢!!!…

查看全部问答>

求购一套STM8L101的开发板,和配套的ST-Link

请版主帮指个路。 各位代理有的话,欢迎报价。 我手头的STM8L101都连不上SWIM,用ST-Link也不行,郁闷。 STM8L152可以。 已经有客户求购EP868用于STM8L了。。。。。…

查看全部问答>

有懂手机元件的吗,

问个事情,手机尾插能改装吗? 比如黑莓的手机尾插是 Micro 接口能改装成其他类型的,比如目前主流的安卓 USB 类型接口,再比如 HTC G2 默认也是畸形的 Micro 接口,能改装成现在 安卓手机主流的 USB 类型接口吗????求~…

查看全部问答>