小语种网站怎么做静态网站是什么原因
- 作者: 五速梦信息网
- 时间: 2026年04月20日 07:09
当前位置: 首页 > news >正文
小语种网站怎么做,静态网站是什么原因,浏览器网站大全免费,苏州seo网站推广哪家好相信大家在学习STM32系列的单片机时#xff0c;在翻阅芯片的数据手册时#xff0c;都会看到这么一个寄存器外设——CAN外设寄存器。那么#xff0c;大家知道这个外设的工作原理以及该如何使用吗#xff1f;这节的内容将会详细介绍STM32上的CAN外设#xff0c;文章结尾附有…相信大家在学习STM32系列的单片机时在翻阅芯片的数据手册时都会看到这么一个寄存器外设——CAN外设寄存器。那么大家知道这个外设的工作原理以及该如何使用吗这节的内容将会详细介绍STM32上的CAN外设文章结尾附有相关代码帮助大家更好地掌握。 1.CAN外设CAN控制器介绍 STM32的芯片中具有bxCAN控制器Basic Extended CAN它支持CAN协议2.0A 和2.0B Active标准。CAN2.0A只能处理标准数据帧且扩展帧的内容会织别错误。而CAN2.0 B Active可以处理标准数据帧和扩展数据帧。CAN2.0 B Passive只能处理标准数据帧而扩展帧的内容会被忽略。 该CAN控制器支持最高的通讯速率为1Mb/s可以自动地接收和发送CAN报文支持使用标准ID和扩展ID的报文外设中具有3个发送邮箱发送报文的优先级可以使用软件控制还可以记录发送的时间具有2个3级深度的接收FIFO可使用过滤功能只接收或不接收某些ID号的报文可配置成自动重发不支持使用DMA进行数据收发。 2.CAN控制器的3种工作模式 CAN控制器有3种工作模式初始化模式正常模式睡眠模式。 上电复位后CAN控制器默认会进入睡眠模式作用是降低功耗。当需要将进行初始的时候配置寄存器会进入初始化模式。当需要通讯的时候就进入正常模式。 3.CAN控制器的3种测试模式 有3种测试模式静默模式、环回模式、环回静默模式。当控制器进入初始化模式的时候才可以配置测试模式 。 静默模式可以用于检测总线的数据流量。环回模式可以用于自检影响总线。环回静默也是用于自检不会影响到总线。 4.功能框图 主动内核 含各种控制/状态/配置寄存器可以配置模式、波特率等。在STM32CubeMx中可以非常方便的配置。 发送邮箱 用来缓存待发送的报文最多可以缓存3个报文。发送调度决定报文的发送顺序。 接收FIFO 共有2个接收FIFO每个FIFO都可以存放3个完整的报文。它们完全由硬件来管理。从而节省了CPU的处理负荷简化了软件并保证了数据的一致性。应用程序只能通过读取FIFO输出邮箱来读取FIFO中最先收到的报文。 接收滤波器过滤器 做用对接到的报文进行过滤。最后放入FIFO 0或FIFO 1。 当总线上报文数据量很大时总线上的设备会频繁获取报文占用CPU。过滤器的存在选择性接收有效报文减轻系统负担。 有2种过滤模式 标识符列表模式它把要接收报文的ID列成一个表要求报文ID与列表中的某一个标识符完全相同才可以接收可以理解为白名单管理。掩码模式屏蔽位模式它把可接收报文ID的某几位作为列表这几位被称为掩码可以把它理解成关键字搜索只要掩码关键字相同就符合要求报文就会被保存到接收FIFO。 如果使能了筛选器且报文的ID与所有筛选器的配置都不匹配CAN外设会丢弃该报文不存入接收FIFO。每个CAN提供了14个位宽可变的、可配置的过滤器组(13~0)。每个过滤器组x由2个32位寄存器CAN_FxR1和 CAN_FxR2组成。 5.CAN通讯实验2双击测试 一发一收 5.1需求描述 使用2块STM32开发板实现CAN消息的发送和接收。一个发送数据另外一个接收数据。 5.2硬件设计 需要把2块开发的CAN_High连起来CAN_Low连起来。连接如图所示。 5.3软件设计寄存器 复制CAN通信案例1的寄存器版本工程2次一个用于发送一个用于接收。 can.c注释掉下面2行代码其他不用做任何变化。 /* 4.5 配置位时序寄存器 // 4.5.1 静默模式 用于调试 /// CAN1-BTR | CAN_BTR_SILM; / 4.5.2 回环模式 用于调试 */ // CAN1-BTR | CAN_BTR_LBKM;main.c 发送 用于发送的工程只保留发送的代码即可。 #include stm32f10x.h // Device header #include usart.h #include Delay.h #include can.h #include string.hint main(void) {usart1_init();printf(尚硅谷 CAN 通讯实验: 发送节点 寄存器版\r\n);CAN_Init();printf(CAN 初始化配置完成…\r\n);uint16_t stdId 123;uint8_t *tData abcdef;while (1){CAN_SendMsg(stdId, tData, strlen((char )tData));printf(发送完毕…\r\n);Delay_s(3);} }main.c 接收 用于接收的工程只保留接收的代码即可。 #include stm32f10x.h // Device header #include usart.h #include Delay.h #include can.h #include string.hint main(void) {usart1_init();printf(尚硅谷 CAN 通讯实验: 接收节点 寄存器版\r\n);CAN_Init();printf(CAN 初始化配置完成…\r\n);RxDataStruct rxDataStruct[8];uint8_t rxMsgCount;while (1){/ 1. 接收数据 /CAN_ReceiveMsg(rxDataStruct, rxMsgCount);/ 2. 输出消息 /uint8_t i;for (i 0; i rxMsgCount; i){RxDataStruct msg rxDataStruct[i];printf(stdId %d, length %d, msgData %s\r\n, msg.stdId, msg.length, msg.data);}} }5.4软件设计HAL库 CubeMx设置 拷贝CAN通信实验1的HAL库版本工程2次。一个用于发送一个用于接收。重新打开每个工程把Test Mode改成 Normal即可其他不用改变。然后重新生成代码。 main.c 发送 int main(void) {HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_CAN_Init();MX_USART1_UART_Init();/ USER CODE BEGIN 2 // 1. 配置过滤器 /CAN_Filter_Config();/ 2. 启动CAN总线 */HAL_CAN_Start(hcan);printf(尚硅谷 CAN 发送实验…\r\n);while (1){uint16_t stdId 0x011;uint8_t *tData abcdefg;CAN_SendMsg(stdId, tData, strlen((char )tData));printf(发送完毕…\r\n);HAL_Delay(300);} }main.c 接收 int main(void) {HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_CAN_Init();MX_USART1_UART_Init();/ USER CODE BEGIN 2 // 1. 配置过滤器 /CAN_Filter_Config();/ 2. 启动CAN总线 /HAL_CAN_Start(hcan);printf(尚硅谷 CAN 接收 实验…\r\n);/ 4. 接收数据 /RxDataStruct rxDataStruct[8];uint8_t rxMsgCount;while (1){CAN_ReceiveMsg(rxDataStruct, rxMsgCount);/ 5. 输出消息 */uint8_t i;for (i 0; i rxMsgCount; i){RxDataStruct msg rxDataStruct[i];printf(stdId %d, length %d, msgData %s\r\n, msg.stdId, msg.length, msg.data);}} }好了以上就完成了两个32单片机之间的一发一收的整个流程了
- 上一篇: 小鱼儿外贸建站设计师培训班怎么样
- 下一篇: 小猪会飞网站建设做海外贸易网站
相关文章
-
小鱼儿外贸建站设计师培训班怎么样
小鱼儿外贸建站设计师培训班怎么样
- 技术栈
- 2026年04月20日
-
小游戏网站模板长沙市有什么好玩的旅游景点
小游戏网站模板长沙市有什么好玩的旅游景点
- 技术栈
- 2026年04月20日
-
小游戏网站建设公司手游折扣平台app哪个好
小游戏网站建设公司手游折扣平台app哪个好
- 技术栈
- 2026年04月20日
-
小猪会飞网站建设做海外贸易网站
小猪会飞网站建设做海外贸易网站
- 技术栈
- 2026年04月20日
-
小猪网站怎么做的中卫网站推广网络营销
小猪网站怎么做的中卫网站推广网络营销
- 技术栈
- 2026年04月20日
-
孝感网站建设 付款方式 银行wordpress 电子书主题
孝感网站建设 付款方式 银行wordpress 电子书主题
- 技术栈
- 2026年04月20日






