草庐IT

02-CubeMx+Keil+Proteus仿真STM32 - GPIO(一)

本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求STM32单片机控制单个LED灯亮灭,在PC0引脚控制LED灯以1s为周期闪烁。硬件设计在上一节的基础上,在Proteus中添加电路如下图所示。打开CubeMX,按照建立工程,配置PC0引脚为GPIO_Output。点击“GeneratorCode”生成Keil工程。注意:我们这里没有选择时钟振荡源,可以按照上一节中介绍的设置,也可以使用内部默认的RC振荡器。同时我们使用默认的推挽输出模式,也可以根据需要通过cub

02-CubeMx+Keil+Proteus仿真STM32 - GPIO(一)

本文例子参考《STM32单片机开发实例——基于Proteus虚拟仿真与HAL/LL库》源代码:https://github.com/LanLinnet/STM32F103R6项目要求STM32单片机控制单个LED灯亮灭,在PC0引脚控制LED灯以1s为周期闪烁。硬件设计在上一节的基础上,在Proteus中添加电路如下图所示。打开CubeMX,按照建立工程,配置PC0引脚为GPIO_Output。点击“GeneratorCode”生成Keil工程。注意:我们这里没有选择时钟振荡源,可以按照上一节中介绍的设置,也可以使用内部默认的RC振荡器。同时我们使用默认的推挽输出模式,也可以根据需要通过cub

小米路由器3G R3G 刷入Breed和OpenWrt 20.02.2 的记录

小米R3G参数Architecture:MIPSVendor:MediatekBootloader:U-BootSystem-On-Chip:MT7621familyCPU/Speed:mipsel_24kc@880MHz2coreFlash:128MBESMTNANDRAM:256MB-NT5CC128M16FP-DI,DDR3-1600-11-11-11Wireless:MT7603/MT76122.4GHz/5GHz802.11an+acEthernet:1000Mbit/s/vlansupportUSB:1x3.0路由器刷入开发版ROM并开启SSH为了写入Bootloader,要开启S

小米路由器3G R3G 刷入Breed和OpenWrt 20.02.2 的记录

小米R3G参数Architecture:MIPSVendor:MediatekBootloader:U-BootSystem-On-Chip:MT7621familyCPU/Speed:mipsel_24kc@880MHz2coreFlash:128MBESMTNANDRAM:256MB-NT5CC128M16FP-DI,DDR3-1600-11-11-11Wireless:MT7603/MT76122.4GHz/5GHz802.11an+acEthernet:1000Mbit/s/vlansupportUSB:1x3.0路由器刷入开发版ROM并开启SSH为了写入Bootloader,要开启S

02-python简介

python简介python认知1、python简介89年开发的语言,创始人范罗苏姆(GuidovanRossum),别称:龟叔(Guido).python具有非常多并且强大的第三方库,使得程序开发起来得心应手.Python程序员的信仰:人生苦短,我用python!开发方向:机器学习人工智能,自动化运维&测试,数据分析&爬虫,python全栈开发2、python版本python2.x版本,官方在2020年停止支持,原码不规范,重复较多python3.x版本,功能更加强大且修复了很多bug,原码清晰,简单3、编译型语言与解释型语言区别编译型:一次性,把所有代码编译成机器能识别的二进制码,在运行代

02-python简介

python简介python认知1、python简介89年开发的语言,创始人范罗苏姆(GuidovanRossum),别称:龟叔(Guido).python具有非常多并且强大的第三方库,使得程序开发起来得心应手.Python程序员的信仰:人生苦短,我用python!开发方向:机器学习人工智能,自动化运维&测试,数据分析&爬虫,python全栈开发2、python版本python2.x版本,官方在2020年停止支持,原码不规范,重复较多python3.x版本,功能更加强大且修复了很多bug,原码清晰,简单3、编译型语言与解释型语言区别编译型:一次性,把所有代码编译成机器能识别的二进制码,在运行代

【《硬件架构的艺术》读书笔记】02 时钟和复位(2)

2.4时钟方案2.4.1内部产生的时钟应尽量避免內部产生时钟。组合逻辑产生时钟会引入毛刺,也会引起时序方面的问题。同步时序电路数据的毛刺不会引起任何问题,而毛刺出现在时钟输入端或异步输入端就会产生明显的影响。毛刺到达时钟输入端如果数据变化,会违背建立和保持时间。即使没有违背时序要求,寄存器也可能输出意料外的值。毛刺可能导致计数器增加额外的计数值,如图。  解决方法:组合逻辑输出增加一个寄存器输出,这个寄存器可以阻止组合逻辑产生的毛刺。 组合逻辑时钟也会增加时钟延迟,可能导致违背时序要求。 图中由于时钟偏移导致违背了建立时间。(这里应该也有问题,这图上CLK往左移dlycombo不也违背建立时间

【《硬件架构的艺术》读书笔记】02 时钟和复位(2)

2.4时钟方案2.4.1内部产生的时钟应尽量避免內部产生时钟。组合逻辑产生时钟会引入毛刺,也会引起时序方面的问题。同步时序电路数据的毛刺不会引起任何问题,而毛刺出现在时钟输入端或异步输入端就会产生明显的影响。毛刺到达时钟输入端如果数据变化,会违背建立和保持时间。即使没有违背时序要求,寄存器也可能输出意料外的值。毛刺可能导致计数器增加额外的计数值,如图。  解决方法:组合逻辑输出增加一个寄存器输出,这个寄存器可以阻止组合逻辑产生的毛刺。 组合逻辑时钟也会增加时钟延迟,可能导致违背时序要求。 图中由于时钟偏移导致违背了建立时间。(这里应该也有问题,这图上CLK往左移dlycombo不也违背建立时间

【《硬件架构的艺术》读书笔记】02 时钟和复位(1)

2.1概述这章主要内容是ASIC设计时的一些建议,这些建议独立于EDA和工艺,主要针对模块设计和存储器接口。2.2同步设计同步设计特点:单个主时钟和单个主置位/复位信号驱动设计中所有时序器件。同步设计:ASIC设计时域控制最安全的方法。2.2.1避免使用使用行波计数器。行波计数器:将触发器输出作为其他触发器的时钟输入端,由于数据相对时钟会有延迟,所以不推荐这种使用方式。2.2.2门控时钟门控单元会导致时钟偏移,并会引入尖峰脉冲单元作用于触发器。可能仿真正常,综合出问题。 2.2.3双边沿或混合边沿时钟 缺点:为使用同步复位和使用插入扫描链这样的测试方法带来麻烦,增加了确认关键信号路径的难度。不

【《硬件架构的艺术》读书笔记】02 时钟和复位(1)

2.1概述这章主要内容是ASIC设计时的一些建议,这些建议独立于EDA和工艺,主要针对模块设计和存储器接口。2.2同步设计同步设计特点:单个主时钟和单个主置位/复位信号驱动设计中所有时序器件。同步设计:ASIC设计时域控制最安全的方法。2.2.1避免使用使用行波计数器。行波计数器:将触发器输出作为其他触发器的时钟输入端,由于数据相对时钟会有延迟,所以不推荐这种使用方式。2.2.2门控时钟门控单元会导致时钟偏移,并会引入尖峰脉冲单元作用于触发器。可能仿真正常,综合出问题。 2.2.3双边沿或混合边沿时钟 缺点:为使用同步复位和使用插入扫描链这样的测试方法带来麻烦,增加了确认关键信号路径的难度。不