STM32常用通信
CAN通信
CAN根据两根线上电位差来判断总线电平,总线电平分为显性电平和隐形电平,两者必居其一,发送方通过控制总线电平发送信息给接收方。
显性电平对应逻辑0,两根线压差2.5V左右,隐形电平对应逻辑1,压差为0。总线上可以挂很多单元,显性电平具有优先权,一个单元
显性电平,则总线为显性。CAN总线起止断有120R的电阻,用于做阻抗匹配,减少回波反射。
CAN的位时序:
<同步段SS>SS
<传播时间段PTS
相位缓冲段1 PBS1>BS1
<相位缓冲段2 PBS2>BS2
1位分为四段,每段由若干Tq组成,
波特率=1/(Tq+TBS1+TBS2)
TBS1=Tq*(TS1[3:0]+1)
TBS2=Tq*(TS2[2:0]+1)
Tq=(BRP[9:0]+1)*TCLK
TCLK=APB时钟周期
过滤器:
互联型28个过滤器,增强型14个过滤器(ag:F103ZET6);
每个过滤器由两个32位寄存器CAN_FxR1和CAN_FxR2组成。
期望收到的值:CAN_FxR1,必须关心的ID:CAN_FxR2;
控制寄存器:
CAN_MCR,INRQ位置1初始化,置零进入正常工作模式。
CAN_BTR,用于设置分频系数BRP,TS1,TS2,决定CAN波特率
发送流程:
选择空置邮箱,设置标识符ID,数据长度和发送数据,请求发送,挂号(等待成为最高优先级),等待总线空闲,发送,空置邮箱
接收流程:
FIFO空,接受有效报文,挂号1(读出,释放邮箱),挂号2(读出,释放邮箱).......满溢出,丢失信息。
SPI
四线通信,MOSI,MISO,CS,SCLK,串行通信,通过移位寄存器进行操作,所以读的时候,需要发送空子节,引起主机发送,如果是
写,则不需要考虑接收。
SPI主模块和与之通信的外设备时钟相位和极性应该一致。
32配置省略......
模拟SPI:
void Write_date ()//SPI写模拟CPHA=1,CPOL=1操作的伪代码
{
片选CS置零选中;
for(i=0;i<8;i++)//八位
{
时钟脚置为零;
if(dat&0x80)
发送1;
else
发送0;
时钟置高;
dat<<=1;//先发高位
}
片选CS置高取消选中;
}
IIC
IIC为串行总线,三种类型信号
开始信号:SCL为高电平时,SDA出现下降沿
结束信号:SCL为高电平时,SDA出现上升沿
应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据CPU 向受控单元发出一个信号后,
等待受控单元发出一个应答信号, CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
数据传输:
SCL高电平时,SDA数据写入,所以要变化SDA值,需要在SCL低电平时。
USART
通过定时器产生,确定波特率,一般8位,起始,停止各一位,无奇偶校验位,串行通信,RX,TX
关键字:STM32 常用通信 USART IIC SPI CAN
引用地址:
STM32常用通信——USART,IIC,SPI,CAN
推荐阅读最新更新时间:2024-11-09 20:13
简谈stm32的地址映射
对于控制器而言,无论是单片机系列还是plc系列,都是控制引脚的高低电平从而对外设进行控制。通常我们采取各种语言进行编写控制语句,类比于汇编和高级语言等。在51单片机的学习初级阶段,我们都使用过汇编语言进行流水灯的编写,在汇编中印象最深的莫过于对地址的控制。这里就是要说到的地址映射。 在32开发中,我们通常使用库进行开发。说白了,32开发是从底层一层一层封装上去的。到我们开发者这里,就是使用最上层的接口进行开发。但是一层一层看下去,还是对寄存器的控制,要控制寄存器,就需要操作寄存器地址。 下图就是stm32的地址映射(此图百度): 在倒数第三紫色区域是片上外设的地址区域,这里反映了片上外设的地址,我们通过操作这些地址,便能操作这
[单片机]
STM32安全固件更新的安全挑战
固件更新是我们软件生命周期中必须面临的问题。软件生命周期中有多种原因让我们需要固件更新,而固件更新也会带来安全问题,如使用固件更新来攻击电子钱包。 STM32 已经提供了很多的安全技术来应对固件更新的安全挑战。在这里和大家一起探讨,如何利用 STM32 安全技术,软件以及硬件安全技术,进行安全的升级固件。 讲座内容既包括了固件更新的一般原理,以及安全固件更新的额外设计。 安全固件更新离不开安全启动。STM32 安全启动为 STM32 安全固件更新提供了安全的运行环境。 什么是安全固件更新? 固件更新是指部分或者完全替换设备上的软件的操作,包括添加新应用,修改已有功能,或者去修复软件里的问题。安全固件更新,则是以安全的方
[单片机]
STM32F0 USART唤醒STOP模式
最近考虑使用STM32F030/042系列做些低功耗的产品,比如车载导航配对的433/315拷贝型遥控器,需要串口通信和STOP模式。 但是遇到比较蛋疼坑爹的事情是,STM32F0系列自带的串口唤醒功能不支持030/042系列,如下: #define EXTI_Line25 ((uint32_t)0x02000000) /*! Internal interrupt line 25 Connected to the USART1 wakeup event, not applicable for STM32F
[单片机]
HASH算法加密芯片的工作原理及其在STM32 MCU上的应用
摘要: 本文主要研究了HASH算法加密芯片的工作原理及其在STM32 MCU上的应用,实现了外部加密芯片对STM32 MCU的程序保护,目前的技术手段无法对其进行破解,其安全性优于其它加密方式。本文首先介绍了SHA256算法的特点。分析了外部加密芯片加密MCU的基本原理和加密安全性的理论分析。并以LCS4110R为例介绍了在STM32F103上的应用,包括软件和硬件。通过本文的论述,开发者可以对外部加密芯片加密MCU有一个理论的认识,并且对于加密芯片的应用提供参考和借鉴,对于MCU安全保护具有一定的参考价值和实用价值。同时,凝睿电子科技开发和支持了行业中比较有代表性的Maxim DS28E15, LCS4110R, RJGT102
[单片机]
【STM32】HAL库-备份寄存器(BKP)
简介 备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。 他们处在备份域里,当VDD电源被切断,他们仍然由VBAT维持供电。 当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位。 使能对备份寄存器和RTC的访问 复位后,对备份寄存器和RTC的访问被禁止,并且备份域被保护以防止可能存在的意外的写操作。执行以下操作可以使能对备份寄存器和RTC的访问。 通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟 电源控制寄存器(PWR_CR)的DBP位来使能对后备寄存器和RTC的访问。 使用电池或其他电源连接到VBAT脚上,当VDD断电时,可以保存
[单片机]
STM32系列又添新成员,性价比之王G0诞生
意法半导体(简称:ST)布局物联网的速度可以说是马不停蹄。今年10月,为了巩固无线市场的布局,ST发布了STM32系列的第12个新成员—STM32WB,加强了STM32在物联网市场的影响力。时隔2个月,ST再一次发布了全新产品,为市场带来了主流型STM32 MCU家族的新成员、在STM32F0系列成功基础上的升级产品——STM32G0。 此次产品发布会是由来自ST微控制器部产品线市场经理Pierre Charvet。Pierre有着丰富的工作经验,他在ST的21个年头里不仅成功地推出了STM8A系列汽车MCU而且做出畅销海外的STM32F0系列。他这次详细介绍了STM32G0的三大亮点——高效、稳健、简单。 让客户
[单片机]
STM32(一)STM32简介
一、什么是STM32? 意法半导体(ST)集团于1988年6月成立,是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。1998年5月,SGS-THOMSON Microelectronics将公司名称改为意法半导体有限公司,是世界最大的半导体公司之一。 STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex®-M0,M0+,M3, M4和M7内核(ST's product portfolio contains a comprehensive range of microcontrollers, from robust, low-cost 8-bit MCUs up
[单片机]
泓格科技CAN测试工具实现简单快速设备检测
利用这个CAN测试工具,通过简单的步骤,就可以协助使用者测试泓格CAN系列产品的CAN通讯,这个工具软件支持大多数的泓格CAN转换器与板卡,用户可以使用这些产品作一些简单的CANopen主站、CANopen从站、DeviceNet主站、DeviceNet从站、J1939的传送与接收等测试,它可以简单又快速的测试出被测设备是否正常工作。重点是,只要简单的三个步骤,你就可以完成这些设备的测试。 特性: ● 自动侦测在该计算机上所有支持的泓格公司CAN设备。 ● 只要三个步骤,测试简单。 ● 可以将测试的结果储存成TXT文本文件。 ● 支持数种测试功能:
支持的CAN设备
其它相关的CA
[嵌入式]