自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 STM32 CUBEMX SPI 第一次发送指令不成功

使用STM32CUBEMX自动生成SPI代码操作W25Q32存储芯片读写,发现每次上电的第一条指令W25Q32无法识别需要注意初始化IO时SPI四个引脚的电平,默认全部拉高后问题解决

2022-05-27 13:12:09 571

原创 stm32 FreeRTOS中断优先级不能高于配置宏 vPortValidateInterruptPriority

在stm32cube中FreeRTOS有以上两个配置,其代表了RTOS可以调用的最高和最低中断优先级,若在优先级不属于该定义的中断中调用FreeRTOS相关函数,则有可能调用vPortValidateInterruptPriority安全函数,导致程序停止运行。void vPortValidateInterruptPriority( void ){ uint32_t ulCurrentInterrupt; uint8_t ucCurrentPriority; //参考内核指南,.

2021-05-31 17:12:04 2117 1

原创 stm32中断优先级

1.STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”或“从优先级”,每个中断源都需要被指定这两种优先级。高抢占优先级的中断可以打断低抢占优先级的中断相同抢占优先级,高响应优先级无法打断低响应优先级的中断相同抢占优先级,两个中断同时触发时,优先执行高响应优先级的中断若所有优先级都相同,谁先触发执行对应中断优先级数字越低代表优先级越高抢占式优先级和响应优先级通过中断优先级组进行分配中断优先级组在stm32中一般可分为0-.

2021-05-31 17:06:30 2308

原创 stm32 hal keil RTT调试报错

stm32使用Segger RTT调试时报一下错误*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'F:\KeilMDK529\ARM\ARMCC\Bin'Build target 'Debug-MC30'linking...MC30\MC30.axf: Error: L6200E: Symbol _sys_close multiply defined (by sys_io.o and segger_rtt_syscalls_keil

2021-01-12 15:48:15 1293

原创 KICAD——自动生成嘉立创可识别的garber bom pos文件

资料链接: http://club.szlcsc.com/article/details_36325_1_1.html#floor_1由于大多数PCB生产厂家无法识别KICAD的PCB文件,因此需要将KICAD的PCB文件生成GARBER文件发送给厂家打样。对于需要SMT的情况,还需要生成BOM和坐标文件提交给厂家。对于上述文件的生成可以通过一个脚本实现,以下为脚本链接:工具地址: http...

2020-07-10 11:13:17 2232 1

原创 KICAD——手动生成嘉立创可识别的BOM和POS文件

虽然KiCad自带了BOM和POS文件的生成功能,但在实际生产过程中嘉立创无法直接使用KiCad生成出来的文件,除了使用自动生成的脚本以外,可以使用下面的方法实现生成文件的生成一、生成BOM文件BOM文件只能在原理图中生成,在PCB中生成的BOM文件格式差异较大,不建议使用。首先,打开原理图,点击上方工具栏中的生成物料清单KiCad自带了很多生成BOM的插件,选择下图所示的插件并点击“生成”生成完成后可以在对于工程文件夹下找到与工程名称相同的两个文件,把其中没有扩展名的文件重命名后增加“.cs

2020-07-10 11:12:04 8849

原创 KICAD——手动生成garber文件

画好PCB后,在PCBnew中,点击工具栏的“绘制”图标。在弹出的窗口中选择输出路径、需要输出的层、输出的相关设置等,并点击绘制绘制完成后点击右下角“生成钻孔文件”,进行钻孔文件的绘制将生成的钻孔文件和层文件打包发送给厂家即可进行PCB打样。对于需要SMT贴片的情况,还需要生成PCB的BOM和坐标文件,用于贴片。生成位置文件可以在 文件-制造输出-封装位置文件 中找到对于5.0以...

2020-07-10 11:09:10 1355

原创 Keil Jlink SW 调试STM32出现 NO SW-DP FOUND

可以参考SEGGER官网给出的建议,在KELI安装目录的 \ARM\Segger 文件夹中替换响应的dll文件即可解决https://www.segger.com/products/debug-probes/j-link/technology/ides/keil-mdk/#knownproblems另外,除了连接3.3 GND SWCLK SWDIO以外,将RESET和JLINK相连有时也可以解决问题,但尚不清楚具体原因。...

2020-07-07 23:39:56 1946 2

原创 嵌入式编程设计模式——轮询模式

除了通过中断的方式获取传感器的数据或信号,另一种常用的方式就是定期检查,称为轮询。当数据或信号不是非常紧急到不能等待到下一个轮询时段来收取,或当数据或信号可用但硬件没有能力生成中断时,轮询非常有用。轮询模式是从搞硬件上检查新数据和信号的最简单方法。轮询能定期或者不定期进行;定期轮询可以采用定时器来表示合适应该对硬件采样,而机会轮询适当系统空闲的时候进行轮询,如在主系统功能或在重复执行的周期之间进行轮询。一般,当数据或时间不是高度紧急且数据采样的时间足够短能够是由轮询模式。轮询模式有两个版本,一种是通过

2020-06-08 22:38:38 3508

原创 实用电路——直流电机限位(堵转、过流保护)电路

最近发现一个比较有意思的电路,可以以很低的成本让直流电机正反转的同时实现限位或过流保护。电路的大致原理图如图所示。其中,K1为带常开、常闭输出的继电器,M1为直流电机,R3为电流采样电阻,D1 D2为持续电流大于继电器工作电流的二极管。整个电路输入为+24V和GND。当需要电机正转时,在+24V和GND上加正电压,电机即可正转。当需要电机反转时,将+24V和GND反接,即电路中网络标号+24V接电源地,网络标号GND接电源负,电机即可反转。当遇到限位或堵转时,继电器切换,电机断电停止运行,只有重新在+2

2020-06-03 17:21:20 17441 9

原创 嵌入式编程设计模式——观察者模式(发布-订阅模式)

观察者模式是最常见的模式之一。这种模式提供一种方法来时对象“监听”其他对象,而不需要修改任何数据服务器。在嵌入式领域,这意味着数据能够很容易分享给其他元素。观察者模式不需要数据服务器对它的客户有任何信息,只需要客户提供订阅功能,允许客户在通知列表中动态添加、删除其本身。数据服务器在数据刷新后通过遍历通知列表将新数据发送给每一个客户,也可以定期更新给客户,减小了客户的计算负担,并确保了数据的实时性。在理想情况下,当数据发生改变时,每个客户希望能及时获取到数据,但通过一直查询的方法会导致计算资源和通信资源的

2020-06-01 21:17:18 1101

原创 嵌入式编程设计模式——中介者模式

当硬件的行为必须按照有明确定义且复杂的方式进行协调工作时,可以使用中介者模式对硬件进行管理,它不需要很多的子类化就可以将复杂过程实现。中介者模式使用一个中介类协调设备的的行为来达到所需的整体效果,该模式主要包括以下几个角色:具体合作者合作者表示一个被中介者调用的设备,可能时设备驱动或硬件代理。当事件发生时,它从中介者获取指令或给中介者发送信息。合作者接口合作者接口时所有可能被中介者调用的具体合作者的服务集合规范。例如,对于所有的硬件设备通常都有 reset() enable() initializ

2020-05-27 22:03:43 337

原创 嵌入式编程设计模式——硬件适配器模式

硬件适配器模式提供一种方法,使已经存在的硬件接口能适应应用期望。当应用需要使用一个接口而硬件提供另一种时,硬件适配器模式创建元素在两个接口之间进行转换。

2020-05-25 21:53:08 485

原创 嵌入式编程设计模式——硬件代理模式

硬件代理模式主要是通过创建某一软件单元来负责对嵌入式系统中某一特定硬件进行操作。硬件代理模式使用类或结构体封装所有对硬件设备的操作,将硬件的寄存器地址、通信方式等进行封装,只提供对硬件进行读写以及初始化、配置等接口。一般每个硬件只有一个硬件代理,硬件代理可以被多个应用访问。硬件代理模式主要有以下两个角色:1.硬件设备表示实际的硬件,可以是单片机的片上外设(如ADC、DAC等)也可以是通过外设连结的其他芯片(如扩展的EEPROM)、电机及电机驱动等,这些硬件都可以通过设置寄存器及中断、使用总线通信或

2020-05-23 18:18:49 770

原创 STM32CUBEIDE——malloc

需要将STM32CUBEIDE reduced C 改为 Standard C

2019-11-04 09:30:37 2307

原创 stm32时钟源

先了解几个概念:stm32时钟源:LSE:是低速外部时钟,一般由OSC_32_IN/OSC_32OUT接外部晶振或时钟源,如常用的32.768k晶振。HSE:是高速外部时钟,一般由OSC_IN/OSC_OUT接外部晶振或外部时钟源,频率范围为4MHz~16MHz,常用8M晶振。LSI:是低速内部时钟,RC振荡器,频率为40kHz左右。HSI:是高速内部时钟,RC振荡器,频率为8MHz左右...

2019-03-24 15:21:48 1457

原创 STM32 HAL库 串口DMA发送完成中断

近期使用STM32驱动MAX3485进行485通信,发现STM32F103C8并不自带硬件485首发功能,需要软件上控制IO高低来驱动MAX3485进行485接收、485发送。根据MAX3485手册可得,进行485发送时给相应引脚高电平。其余时间为低电平进行485接收。因此需要找到串口DMA发送完成的回调函数,在发送完成后将引脚拉低。在stm32f1xx_hal_uart.c中/** @de...

2019-03-15 11:10:27 7170

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除