打印
[demo程序]

~注意~注意!使用NV32 PB4这个IO口 的同学要注意配置!

[复制链接]
1317|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kation122|  楼主 | 2016-12-1 09:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      用过STM8S 的同学应该还记得PB4、 PB5 的“坑”, 昨晚没想到NV32 的PB4 口也一样的暗藏玄机,让我慢慢道来,
demo 板上折腾了两天,基本熟悉一些功能模块,昨晚就真刀真枪的开干了,在自己的PCB 上焊好了NV32 等元器件,
按部就班,第一步调试电工的“Hello world!",准备点亮一个LED ,好死不死这个LED 就接在PB4口,结果折腾到大半夜,
硬是点不亮,看规格书PB4 上标了一个1、表明是大电流口,难道这个大电流口需要特殊配置吗....结果一直往这个错误方向去设置,
后来对比了同样是大电流的PB5口,发现PB5 就可以控制高低电平,然后一顿折腾,最后在参考手册中搜索PB4 才发现了这段话
“复位后,共用的外设功能禁用,因此这些引脚通过并行 I/O控制,但默认关联至 SWD_DIO、SWD_CLK、NMI和 RESET
功能的 PA4、PA5、PB4 和 PC4 除外。”

     原来NV32 默认PB4 是NMI 功能的,如果你在程序不自己配置的话,PB4 是不能作为GPIO 使用的,在sysinit (void)中加上
sSIMConfig.sBits.bDisableNMI = 1; //1==启用PB4 作为GPIO功能,0==默认的NMI 功能,
自此LED终于欢快的闪烁起来了!

    PS:初步看了规格书,应该都只关注到PB4 是大电流口,容易忽略这个默认的配置,希望对以后使用NV32 的朋友有帮助。

相关帖子

沙发
zhanzr21| | 2016-12-1 18:36 | 只看该作者
多谢分享!

使用特权

评论回复
板凳
wztoad| | 2016-12-2 08:32 | 只看该作者
而且这个口开机时电平必需要高电平,不然都MCU都启动不了

使用特权

评论回复
地板
939280709| | 2016-12-4 09:49 | 只看该作者
多谢分享,后续我们规格书重点标注一下!

使用特权

评论回复
5
kation122|  楼主 | 2016-12-4 11:52 | 只看该作者
939280709 发表于 2016-12-4 09:49
多谢分享,后续我们规格书重点标注一下!

嗯嗯,对滴,重点标出来更明了,请问一下,
LS 的同学说, PB4这个引脚,“开机时电平必需要高电平,不然都MCU都启动不了”,
那如果用这个PIN 做IO ,是不是有启动不了的风险呢,该如何避免!
PS:上面同学说启动不了,会不会是程序没定义NMI 中断向量,导致一上电产生了NMI中断,然后一直中断出不了,所以就表现为开不了机。

使用特权

评论回复
6
wztoad| | 2016-12-7 20:51 | 只看该作者
kation122 发表于 2016-12-4 11:52
嗯嗯,对滴,重点标出来更明了,请问一下,
LS 的同学说, PB4这个引脚,“开机时电平必需要高电平,不然 ...

因为nmi是不可屏蔽的中断,就算启动后程序马上设置成普遍IO口,但因为上电瞬间就不停中断,所以根本执行不了程序

使用特权

评论回复
7
springvirus| | 2016-12-8 17:00 | 只看该作者
楼主辛苦了~~

使用特权

评论回复
8
cl1cl1cl1| | 2016-12-21 08:48 | 只看该作者
能不能在NMI中断里设置成GPIO模式?

使用特权

评论回复
9
agnd| | 2016-12-27 07:46 | 只看该作者
这个特性....可以用来加密

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

126

帖子

9

粉丝