推荐阅读最新更新时间:2024-11-09 20:02
国产APM32F103ZET6替换STM32F103ZET6经验分享
随着大变局时代的开启,美国对中国科技的打压,对中国芯片的锁脖,ST芯片价格的一再高涨,直接推动了国产芯片的发展。国内很多厂家也开始推出高性能、低价格的对标ST产品。由于价格问题,我也不得不考虑更换芯片,看了一些测评,有人推荐这一款APM32的单片机,价格比ST同型号的便宜,果断下单,以下是我使用APM32F103ZET6替换STM32F103ZET6的一些分享,参考了网上各路大神的资料后作的总结。 1从手册中分析资源,基础信息一模一样 1.1引脚定义 由下图可以看出相同封装的引脚分布完全一致。 1.2结构框图 (1)都是M3内核,总体与STM32F103ZET6架构一致 外设上做了部分增加,APM32F103相较于S
[单片机]
在Nucleo STM32F401RE上使用SPI DMA方式提高W5500传输速率
WIZnet W5500 支持高达 80MHz SPI 时钟,所以用户可用 MCU来提供一个最大传输速率的高速以太网SPI通讯。本文中,我将展示如何用STM32 MCU来让W5500达到最大传输速率。 当使用来自STMicro的Cortex M3/M4产线的32位处理器,以太网传输速率可以在使用SPI通讯模式事产生最大变化。我将比较使用SPI标准模式和SPI DMA模式的不同传输速率。 组成 MCU : Nucleo STM32F401RE 以太网控制器 : WIZnet WIZ550io(内嵌 W5500) 引脚连接 MCU与WIZnet WIZ550io之间的引脚连接,请参见下表。 首先,连接电源线。 其次,连接S
[单片机]
示波器通道耦合与触发耦合
我们与大家分享了示波器中的“两反”设置,事实上,在示波器中也有“两耦”设置,其中一个是通道的耦合方式设置,另一个则是触发耦合的设置。 按下通道控制软键,可看到通道耦合的菜单。事实上,通道耦合是决定进入输入通道的信号分量。您可以通过设置通道耦合方式来滤除被测信号中不需要的成分。选中通道耦合软键,ZDS2022示波器通道耦合支持直流、交流和接地三种耦合方式。其中,直流耦合支持被测信号的直流分量和交流分量均可通过。交流耦合是指被测信号的直流分量被阻隔,显示的波形始终以零电压为中心。接地是指内部ADC直接输出0电平。 图1 通道耦合 触发耦合在哪里设置呢?按下【Trigger】键,打开触发菜单,按下触发设置软键,即可看
[测试测量]
STM32系统学习——DMA(直接储存器访问)
DMA主要功能是传输数据,但是不需要占用CPU,即在传输数据时,CPU可以做别的事,像多线程。数据传输从外设到存储器或者从存储器到存储器。DMA控制器包含了DMA1和DMA2,其中DMA1有7个通道,DMA2有5个通道,可以理解为传输数据的一种管道。要注意的是,DMA2只存在于大容量单片机中。 一、DMA框图解析 DMA控制器独立于内核,属于一个单独外设,结构结合下图来看 1.DMA请求 如果外设想通过DMA传输数据,必须先向DMA控制器发送DMA请求,DMA收到请求信号后,控制器会给外设一个应答信号,当外设应答且DMA控制器收到应答信号后,就会启动DMA传输,直到传输完毕。 DMA有DMA1和DMA2两个控制器,DMA1有两
[单片机]
STM32F103看门狗功能实现
STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备( 独立看门狗 和 窗口看门狗 )可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。 独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。
[单片机]
STM32——DMA
DMA 是为CPU分担数据转移的工作。因为DMA的存在CPU才被解放出来,它可以在 DMA 转移数据的过程中同时进行数据运算、响应中断,大大提高效率。 1、DMA工作分析 数据传输的过程中,不需要内核的全程参与,所以内核可以同时进行数据运算。DMA 方式是点到点的数据转移,而不使用 DMA 方式还要以内核来作为中转站,显然 DMA 传输方式的效率更高。 要使用 DMA,需要确定一系列的控制参数,如外设数据的地址、内存地址、传输方向等,在开启 DMA 传输前还要先发出 DMA 请求。 2、 初始化DMA typedef struct { uint32_t DMA_PeripheralBaseAdd
[单片机]
单片机(AT89C51)外设的I/O输入输出实验
题目解析 主要实现扩展的输入口接了8个开关,扩展的输出口接了8个发光二极管。实现8个开关控制对应8个发光二极管的显示? 实验中需要用到外界其他的芯片 方法一 使用74LS373和74LS245作为外接的芯片完成实验 实验电路图 实验代码 #include reg51.h #include absacc.h //定义绝对地址访问 #define uchar unsigned char void delay(unsigned int n) { unsigned int i,j; for(i=0;i n;i++) for(j=249;j 0;j--) ; } uchar i; vo
[单片机]
STM32F103高级定时器死区时间的计算
看了一些网上讲死区时间计算的教程,觉得讲述的不是很清楚,所以在此用我自己理解的方式讲述一遍,如有错误,请读者赐教。 死区时间的设置:由寄存器“TIM1和TIM8刹车和死区寄存器TIMX_BDTR”中,位DTG 控制(中文数据手册可能出现错误,应当是DTG)。 官方数据手册的说明不容易看懂,举的例子与我的应用场合也不一致,我使用的是72MHz的晶振,讲一讲我的死区时间是怎么算出来的。 DT死区时间; TDTS为系统时钟周期时长; TDTG为系统周期时长乘以倍数,这个值用于计算最终死区时间,也叫作步长。 在72M的定时器时钟下,TDTS = 1/72M = 13.89ns。 这个计算比较复杂,主要思想
[单片机]