【HAL库】STM32CubeMX开发----STM32F407----CAN通信实验

【HAL库】STM32CubeMX开发----STM32F407----目录

【HAL库】STM32F407----CAN通信----基本原理
【HAL库】STM32F407----CAN通信----电路图
【HAL库】STM32F407----CAN通信----中断详解

本篇文章的程序源码:【HAL库】STM32F407----CAN通信-收发实验-程序源码----点击下载


前言

本次实验以 STM32F407VET6 芯片为MCU,使用 25MHz 外部时钟源。
CAN通信波特率为 500K bps。
CAN通信引脚MCU引脚 对应关系如下:

CAN通信引脚 MCU引脚
TX PB9
RX PB8

  • 19
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
STM32F767单片机开发实验例程HAL库版本60个软件工程源码合集: STM32F7开发指南-HAL库版本_V1.1.pdf 实验0-1 Template工程模板-新建工程章节使用 实验0-2 Template工程模板-调试章节使用 实验0-3 Template工程模板-使用STM32CubeMX配置 实验1 跑马灯实验 实验10 电容触摸按键实验 实验11 OLED显示实验 实验12 内存保护(MPU)实验 实验13 TFTLCD(MCU屏)实验 实验14 SDRAM实验 实验15 LTDC LCD(RGB屏)实验 实验16 USMART调试试验 实验17 RTC实时时钟实验 实验18 随机数发生器实验 实验19 待机唤醒实验 实验2 按键输入实验 实验20 ADC实验 实验21 内部温度传感器实验 实验22 DAC实验 实验23 PWM DAC实验 实验24 DMA实验 实验25 IIC实验 实验26 IO扩展实验 实验27 光照&接近传感器实验 实验28 QSPI实验 实验29 485实验 实验3 串口通信实验 实验30 CAN实验 实验31 触摸屏实验 实验32 红外遥控实验 实验33 DS18B20数字温度传感器实验 实验34 DHT11数字温湿度传感器实验 实验35 MPU9250九轴传感器实验 实验36 NRF24L01无线通信实验 实验37 FLASH模拟EEPROM实验 实验38 摄像头实验 实验39 内存管理实验 实验4 外部中断实验 实验40 SD卡实验 实验41 NAND FLASH实验 实验42 FATFS实验 实验43 汉字显示实验 实验44 图片显示实验 实验45 硬件JPEG解码实验 实验46 照相机实验 实验47 音乐播放器实验 实验48 录音机实验 实验49 SPDIF(光纤音频)实验 实验5 独立看门狗实验 实验50 视频播放器实验 实验51 FPU测试(Julia分形)实验 实验52 DSP测试实验 实验53 手写识别实验 实验54 T9拼音输入法实验 实验55 串口IAP实验 实验56 USB读卡器(Slave)实验 实验57 USB声卡(Slave)实验 实验58 USB虚拟串口(Slave)实验 实验59 USB U盘(Host)实验 实验6 窗口看门狗实验 实验60 USB鼠标键盘(Host)实验 实验61 网络通信实验 实验62 UCOSII实验1-1-任务调度 实验62 UCOSII实验1-2-任务创建删除挂起恢复 实验63 UCOSII实验2-信号量和邮箱 实验64 UCOSII实验3-消息队列、信号量和软件定时器 实验7 定时器中断实验 实验8 PWM输出实验 实验9 输入捕获实验
STM32F407VET6是STM32F407系列微控制器中的一种,与STM32F407微控制器相比,其IO设置并没有太大的区别,下面是一个使用CAN1总线的PA11和PA12引脚的IO设置示例代码: ```c // 选择CAN引脚功能 GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_CAN1); GPIO_PinAFConfig(GPIOA, GPIO_PinSource12, GPIO_AF_CAN1); // 配置引脚的上拉电阻 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOA, &GPIO_InitStructure); // 配置CAN控制器 CAN_InitTypeDef CAN_InitStructure; CAN_FilterInitTypeDef CAN_FilterInitStructure; CAN_DeInit(CAN1); CAN_StructInit(&CAN_InitStructure); CAN_InitStructure.CAN_TTCM = DISABLE; CAN_InitStructure.CAN_ABOM = DISABLE; CAN_InitStructure.CAN_AWUM = DISABLE; CAN_InitStructure.CAN_NART = DISABLE; CAN_InitStructure.CAN_RFLM = DISABLE; CAN_InitStructure.CAN_TXFP = DISABLE; CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; CAN_InitStructure.CAN_BS1 = CAN_BS1_6tq; CAN_InitStructure.CAN_BS2 = CAN_BS2_8tq; CAN_InitStructure.CAN_Prescaler = 4; CAN_Init(CAN1, &CAN_InitStructure); CAN_FilterInitStructure.CAN_FilterNumber = 0; CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000; CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000; CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000; CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000; CAN_FilterInitStructure.CAN_FilterFIFOAssignment = CAN_FIFO0; CAN_FilterInitStructure.CAN_FilterActivation = ENABLE; CAN_FilterInit(&CAN_FilterInitStructure); ``` 需要注意的是,不同的芯片厂家可能会有不同的引脚分配和寄存器设置,因此在具体实现时需要参考芯片的数据手册和相关的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

根号五

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值