大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是嵌入式里串口(UART)自动波特率识别程序设计与实现. 串口(UART)是嵌入式里最基础最常用也最简单的一种通讯(数据传输)方式,可以说是工程师入门通讯领域的启蒙老师,同时串口打印也是嵌入式项目里非常经典的调试与交互方式. 最精简的串口仅使用两根单向信号线:TXD.RXD,这两根信号线是独立工作的,因此数据收发既可分开也可同时进行,这就是所谓的全双工.串口没有主从机概念,并且没有专门的时钟信号 SCK,所以串口通信也属于异步传输.…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是以i.MXRT的GPIO模块为例谈谈中断处理函数(IRQHandler)的标准流程. 在痞子衡旧文 <串口(UART)自动波特率识别程序设计与实现(中断)>里,我们利用了 GPIO 模块内部集成的 I/O 边沿检测功能完成了 RXD 信号下降沿的捕捉,这里涉及到了 GPIO 中断处理函数.中断处理函数 IRQHandler 是嵌入式里非常特殊的一类函数,它们是嵌入式系统能够实时完成任务的关键所在,任何一个中断处理函数都需要被谨慎对…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是在串口波特率识别实例里逐步展示i.MXRT上提升代码执行性能的十八般武艺. 恩智浦 MCU SE 团队近期一直在加班加点赶 SBL 项目(解决客户产品 OTA 需求),这个项目里集成了 ISP 本地升级(UART/USB)功能,其中 UART 口下载升级实现里加入了自动波特率识别支持,具体识别方法见 <串口(UART)自动波特率识别程序设计与实现(中断)> 一文,这一套 ISP 代码其实是移植于 i.MXRT Flashloade…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是改动i.MXRT1xxx里IOMUXC_GPR寄存器保留位可能会造成系统异常. 痞子衡的嵌入式技术交流群里有一位非常活跃的朋友(网名:文,痞子衡已经指定他为副群主)近日向痞子衡反映了一个在i.MXRT1062应用程序里动态调整FlexRAM导致WDOG模块工作异常的问题,经过一番排查,痞子衡发现了i.MXRT芯片系统设计里的一个小秘密,这个秘密警示我们在MCU里应尽量遵循谨慎的外设寄存器赋值法,这个寄存器谨慎赋值法是什么,痞子衡先卖…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PyQt GUI构建工具Qt Designer. 痞子衡开博客至今已有好几年,一直以嵌入式开发相关主题的文章为主线,偶尔穿插一些其他技术或工具的介绍,前段时间因为要做一个跟恩智浦MCU启动相关的上位机工具 NXP-MCUBootUtility,网上搜索对比了几个Python下的GUI框架,最终选择了wxPython这个成熟稳定的GUI库,从而接触到wxFormBuilder这个配套wxPython使用的GUI构建工具.苦于网上关于该…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1050/1020/1015系列ROM中的FlexSPI驱动API使用. 今天痞子衡去4S店给爱车做保养了,保养一次要等两小时,闲来无聊就写了这篇文章打发时间,正好痞子衡技术交流群里有朋友也在问这个主题,急人所急是痞子衡的一大特质(此处请允许我装一下). 本篇是 <利用i.MXRT1xxx系列ROM提供的FlexSPI driver API可轻松IAP> 的续集,上篇文章基本上把ROM API原理及使用讲得很透彻了,但…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具pzh-py-speech诞生之界面构建. 之前痞子衡设计过一个串口调试助手pzh-py-com,也专门写过一篇关于其界面构建的文章 <串口调试工具pzh-com诞生记(2)- 界面构建>,今天咱们来构建pzh-py-speech的界面过程与pzh-py-com构建步骤类似,也是分四步:界面设计简图.界面设计wxPython组件图.在wxFormBuilder里创作.使用生成的Python代码.为了突出重点,痞子衡只讲…
目录: 1.MM32F0140简介 2.UART自动波特率校准应用场景 3.MM32F0140 UART自动波特率校准原理简介 4.MM32F0140 UART1 NVIC硬件自动波特率配置以及初始化 5.编写MM32F0140 UART1发送数据函数 6.编写MM32F0140 UART1中断接收函数以及自动波特率校准的实现 7.编写MM32F0140 UART1处理中断接收数据函数 8.验证MM32F0140 UART1自动波特率校准功能 提要: 学习MM32F0140 UART自动波特率校…
目录: 1.MM32F0020简介 2.UART自动波特率校准应用场景 3.MM32F0020 UART自动波特率校准原理简介 4.MM32F0020 UART1 NVIC硬件自动波特率配置以及初始化 5.编写MM32F0020 UART1发送数据函数 6.编写MM32F0020 UART1中断接收函数以及自动波特率校准的实现 7.编写MM32F0020 UART1处理中断接收数据函数 8.验证MM32F0020 UART1自动波特率校准功能 提要: 学习MM32F0020 UART自动波特率校…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是IAR下调试信息输出机制之硬件UART外设. 在嵌入式世界里,输出打印信息是一种非常常用的辅助调试手段,借助打印信息,我们可以比较容易地定位和分析程序问题.在嵌入式应用设计里实现打印信息输出的方式有很多,本系列将以 IAR 环境为例逐一介绍 ARM Cortex-M 内核 MCU 下打印信息输出方法. 本篇是第一篇,我们先介绍最常见的输出打印信息方式,即利用 MCU 芯片内的硬件 UART 外设.本篇其实并不是要具体介绍 UART…