在开发低功耗产品时,为了尽可能的降低功耗,一般会讲未使用的GPIO设置为某个状态,比如在STM32L4xx理,GPIO在 analog 模式功耗是最优。SWD口除了开发调试及生产烧录,出去后用不到,所以会设为 analog 模式(调试的时候保留,正式版才关闭,这个大家都懂,万一生产返工呢………………)。
这样就会出现个问题:空片的SWD没有被禁止,所以随时都可以烧录,但是烧过程序的就被关闭了,怎么办?
其实,MCU在复位的时候,SWD所在的那两个GPIO默认就是SWD接口,还是可以连上的。说得那么简单,那也没必要写这篇文章了。复位后GPIO确实是SWD接口,但是jlink连接芯片也是要时间的,虽然很短,如果在复位后立马就去将SWD口改了,jlink就连不上了。说到这,应该都明白该怎么做了: 系统启动后不要立马去更改SWD口的配置,过一会再改,比如其它的初始化 *** 作都完成了再改!!!
血和泪的教训…………………………
前面说,在复位后的那一小会是可以连接的,但是调试的时候总不能每次都去按复位键或重新上电那得多麻烦。这方面,jlink想得很周到,提供了一个 reset 脚,将该脚连到MCU的复位脚,并在IDE上做如下配置即可:
IAR:
可以。
实现数据格式化,因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。
进行错误检测,在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)