STM32之CAN
概述:STM32有3个发送邮箱,发送调度器根据优先级决定先发送那个,相当于有3个发送帧FIFO;接收方面有14个过滤器,通过编程可以从CAN的接收引脚中选择需要的报文然后分别给2个接收帧FIFO(每个可以有3个完整报文,等于分2组,共6个接收帧缓冲)。
IO设置:CAN_RX:输入上拉;CAN_TX:AF_PP复用推挽输出。
时钟设置:对应的GPIO时钟、AFIO时钟、CAN时钟(APB1)
一 CAN的波特率:CAN1是挂在APB1上的(36MHZ),那么以下波特率=APB1/(1+3+5)/8=500K,
二 其它的CAN设置常规,设置NVIC中断编写CAN1_RX0_ISR()接收中断。发送函数
void User_CANTransmit(uint16_t val){
CanTxMsg TxMessage; /* 定义CAN报文结构体 */
uint8_t TransmitMailbox;
TxMessage.StdId=val&0x7FF; /* 动态填充帧ID,防止碰撞 */
TxMessage.RTR=CAN_RTR_DATA; /* 数据帧 */
TxMessage.IDE=CAN_ID_STD; /* 标准帧 */
TxMessage.DLC=2; /* 数据场长度 */
TxMessage.Data[0]=val; /* 填充数据场 */
TxMessage.Data[1]=(val>>8); /* 填充数据场 */
TransmitMailbox=CAN_Transmit(CAN1,&TxMessage); /* 发送并获取邮箱号 */
while((CAN_TransmitStatus(CAN1,TransmitMailbox) != CANTXOK)); /* 等待发送完成 */
}
三 发送和接收的BUG在#include "stm32f10x_can.h"已经定义了专门的结构体CanRxMsg、CanTxMsg
STM32之CAN的更多相关文章
- ucos实时操作系统学习笔记——操作系统在STM32的移植
使用ucos实时操作系统是在上学的时候,导师科研项目中.那时候就是网上找到操作系统移植教程以及应用教程依葫芦画瓢,功能实现也就罢了,没有很深入的去研究过这个东西.后来工作了,闲来无聊就研究了一下这个只 ...
- [转] STM32各种时钟的区别
[原创]:http://m.oschina.net/blog/129357 我在原创的基础又从另一位博主处引用了一些内容. 时钟系统是处理器的核心,所以在学习STM32所有外设之前,认真学习时钟系统是 ...
- [转载]:STM32为什么必须先配置时钟再配置GPIO
转载来源 :http://blog.csdn.net/fushiqianxun/article/details/7926442 [原创]:我来添两句,就是很多同学(包括我)之前搞低端单片机,到了stm ...
- STM32 NVIC配置详解
例程: /* Configure one bit for preemption priority */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1) ...
- MDK st-link下载STM32程序出现Internal command error和Error:Flash download failed. Target DLL
MDK st-link下载STM32程序出现Internal command error和Error:Flash download failed. Target DLL 是因为目标板的芯片处于休眠 ...
- MDK5 STM32编译问题汇总
MDK5 STM32编译问题汇总 WIN8.KEIL-MDK-5 编译时,出现弹窗"The ARM C/C++ Compiler 已停止工作",关闭弹窗后,编译输出的窗口中出现如下 ...
- STM32学习及应用笔记一:SysTick定时器学习及应用
这几年一直使用STM32的MCU,对ARM内核的SysTick计时器也经常使用,但几乎没有仔细了解过.最近正好要在移植一个新的操作系统时接触到了这块,据比较深入的了解了一下. 1.SysTick究竟是 ...
- STM32之DMA+ADC
借用小甲鱼的经典:各位互联网的广大网友们.大家早上中午晚上好..(打下小广告,因为小甲鱼的视频真的很不错).每次看小甲鱼的视频自学都是比较轻松愉快的..我在想,如果小甲鱼出STM32的视频,我会一集不 ...
- STM32之DAC君
如花说得好:呃呃呃.是俗话说得好:有了ADC,怎可少了DAC..我觉得奇怪.今天我开头就直奔主题了.我想了想,总结了一句话:孙悟空纵然有七十二变.无论是变成猫也好,变成狗也罢.始终还是会变回他本身.所 ...
- STM32之ADC+步骤小技巧(英文)
神通广大的各位互联网的网友们.大家早上中午晚上好好好.今早起来很准时的收到了两条10086的扣月租的信息.心痛不已.怀着这心情.又开始了STM32的研究.早上做了计算机控制的PID实验,又让我想起了飞 ...
随机推荐
- 常见css兼容问题
链接的虚线框问题 <!-- html --> <a class="noDashedBox" href="#"><img src=& ...
- linux网络编程 ntohs, ntohl, htons,htonl inet_aton等详解
ntohs =net to host short int 16位 htons=host to net short int 16位 ntohs =net to host long int 32位 hto ...
- 机器学习:决策树--python
今天,我们介绍机器学习里比较常用的一种分类算法,决策树.决策树是对人类认知识别的一种模拟,给你一堆看似杂乱无章的数据,如何用尽可能少的特征,对这些数据进行有效的分类. 决策树借助了一种层级分类的概念, ...
- 【Lintcode】103.Linked List Cycle II
题目: Given a linked list, return the node where the cycle begins. If there is no cycle, return null. ...
- ASP.Net MVC实现一个表单多个submit
1. 用Html.BeginForm(ActionName,ControllerName,Post)来实现controller-action的路由, 2. Form里的每个input的name值统一, ...
- Win10系统右键添加Sublime Text 3的打开方式
1.打开注册表编辑器,开始->运行->regedit. 2.在HKEY_CLASSSES_ROOT→ * → Shell 下,在Shell下,新建项命名为Open With Sublime ...
- sqlServer对内存的管理
简介 理解SQL Server对于内存的管理是对于SQL Server问题处理和性能调优的基本,本篇文章讲述SQL Server对于内存管理的内存原理. 二级存储(secondary storage) ...
- Ubuntu Navicat for&nbs…
首先上官网上下载LINUX版本: http://www.navicat.com/download 1. 下载 navicat110_mysql_en.tar.gz 文件 2. 下载后解压tar文件 t ...
- NFS资料
Linux NFS服务器的安装与配置 http://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html Linux NFS服务器的安装与配 ...
- Spring入门第十七课
AOP编程 问题: 代码混乱: 越来越多的非业务需求(日志和验证等)加入后,原有的业务方法急剧膨胀,每个方法在处理核心逻辑的同事还必须兼顾其他多个关注点. 代码分散:以日志需求为例,只是为了满足这个单 ...