单片机引脚复用使用不当会导致bug

单片机的pin复用功能是很厉害的,比如powerpc系列的mpc5602D这一款芯片。
如果通过SIUL没有配置正确。
比如一个单片机的某个特定的pin有emios(PWM)的输出功能,同时该pin也可以有adc的功能(下文只讨论该pin)。
那么的确在有些情况下会存在adc捕获到emios的输出情况。
同时adc本来是输入的。结果由于配置的问题,对外围电路也产生了干扰。
这种bug一般不容易被用户察觉到。还以为是来自硬件的干扰。实际上是由于对SIUL的配置的bug导致一种看起来奇怪的bug。

此时只需要对siul配置正确就可以了。

原文地址:https://www.cnblogs.com/praiseslow/p/11020414.html

时间: 2024-07-31 15:32:16

单片机引脚复用使用不当会导致bug的相关文章

[转载]DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子2

(转载于breaksoftware的csdn博客) 本文介绍使用Windbg去验证<DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子>中的结论,调试对象是文中刚开始那个例子. 1 g 让程序运行起来 2 ctrl+break 中断程序 3 ~ 查看线程数 其实该程序自己运行起来的线程只有ID为0.TID为afc的线程.18c4线程是我们在windbg中输入ctrl+break,导致windbg在我们调试的进程中插入的一个中断线程.以后我们看到是这个线程的操作

[转]DllMain中不当操作导致死锁问题的分析&mdash;&mdash;DllMain中要谨慎写代码(完结篇)

在CSDN中发现这篇文章,讲解的比较详细,所以在这里备份一个.原文链接:http://blog.csdn.net/breaksoftware/article/details/8167641 DllMain的相关特性 首先列出<DllMain中不当操作导致死锁问题的分析--进程对DllMain函数的调用规律的研究和分析>中论证的11个特性: Dll的加载不会导致之前创建的线程调用其DllMain函数. 线程创建后会调用已经加载了的DLL的DllMain,且调用原因是DLL_THREAD_ATTA

Nginx配置不当可能导致的安全问题

Nginx配置不当可能导致的安全问题 Auther: Spark1e目前很多网站使用了nginx或者tenginx(淘宝基于Nginx研发的web服务器)来做反向代理和静态服务器,ningx的配置文件nginx.conf的一些错误配置可能引发一些安全问题.要了解这些问题,我们先简单了解一下Nginx的配置文件 0x00 Nginx的配置文件的格式 Nginx的主配置文件非常简短,是由一些模块构成的.在任何情况下Nginx都会加载其主配置文件.一个主配置文件nginx.conf的结构如下: ...

关于引脚复用,不得不提的GPIO_Pin_sources 和GPIO_Pin

今天在端口复用时遇到了困惑,参考:http://www.51hei.com/bbs/dpj-40992-1.html 调整前的代码GPIO_PinAFConfig(GPIOA,GPIO_Pin_9,GPIO_AF_4);GPIO_PinAFConfig(GPIOA,GPIO_Pin_10,GPIO_AF_4); 调整后的代码GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_4);GPIO_PinAFConfig(GPIOA,GPIO_PinSource

unity, StopAllCoroutines导致bug的解决办法

StopAllCoroutines有时候不用不行. 但只要一用,就可能导致无穷无尽的bug. 原因是StopAllCoroutines会将当前脚本中所有coroutines都停掉,而没法做到只停掉我们想停的那一部分coroutines. 解决办法是:用多个脚本. 把一组想一停全停的一组coroutines放在一个脚本里,把另一组想一停全停的一组coroutines放在另一个脚本里...

单片机引脚介绍

单片机的40个引脚可分为4类:电源.时钟.控制和I/O引脚. 1. 电源: ⑴ VCC - 芯片电源,接+5V:           ⑵ VSS - 接地端: 2. 时钟: XTAL1.XTAL2 - 晶体振荡电路反相输入端和输出端. 3.控制线:控制线共有4根,           ⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲                    ① ALE功能:用来锁存P0口送出的低8位地址                    ② PROG功能:片内有EPR

IO引脚复用和映射

1.端口复用 这些外设包括ADC,DAC以及串口等等. 查找STM32F429数据手册可以找到相关IO口的复用功能引脚. 注意:除ADC和DAC要配置成模拟通道外,其他的所有外设都要配置成复用功能.

STM32 JTAG引脚复用设置

前奏 先来copy下 JTAG.SW接口的定义, JTAG:JTAG(Joint Test Action Group:联合测试工作组)是一种国际标准测试协议,主要用于芯片内部测试.现在多数的高级器件都支持JTAG协议,如DSP.FPGA器件等.标准的JTAG接口是4线:TMS.TCK.TDI.TDO,分别为模式选择.时钟.数据输入和数据输出线. SWD:SW(Serial Wire Mode Interface),串行接口线模式.在串行线模式,只有针TCLK和TMS使用.TDO数据输出引脚是一个

[转载]DllMain中不当操作导致死锁问题的分析——线程中调用GetModuleFileName、GetModuleHandle等导致死锁

(转载于breaksoftware的csdn博客) 之前的几篇文章已经讲解了在DllMain中创建并等待线程导致的死锁的原因.是否还记得,我们分析了半天汇编才知道在线程中的死锁位置.如果对于缺乏调试经验的同学来说,可能发现这个位置有点麻烦.那么本文就介绍几个例子,它们会在线程明显的位置死锁掉. DLL中的代码依旧简单.它获取叫EVENT的命名事件,然后等待这个事件被激活.激活的操作自然放在线程中.这次我们不用在DLL中创建线程,而是在Exe中创建. switch (ul_reason_for_c