查看: 296|回复: 5
收起左侧

[技术问答] 怎样管脚复用

[复制链接]

2

主题

11

帖子

33

积分

实习生

 楼主| 发表于 2017-6-6 12:45 | 显示全部楼层 |返回版面||阅读模式
请问 NV32怎样管脚复用

4

主题

20

帖子

60

积分

初级技术员

发表于 2017-6-9 09:58 | 显示全部楼层 |返回版面
以 PA5 脚为例, 讲解一下在系统初始化过程中的管脚复用问题
首先通过看 NV32 的管脚分配图

我们可以直观的看出, 此管脚上默认优先级最高的就是复位功能, 类于这种系统级的功能用来管脚复用的情况还有很多种, 比如 NMI, SWD 功能所在引脚的管脚复用, 都需要在系统初始化函数 Sysinit 中进行配置。
1.在 Sysinit.c 中的 sysinit 函数中初始化 SIM 模块的结构体: SIM_ConfigType sSIMConfig = {{0},0};
2.利用模块化编程的思想, 若宏定义 DISABLE_RST 这个参数, 则禁用 RESET 脚, 即给对应的结构体变量赋值, 对应的引脚参数参看 SIM 章节的 SIM_SOPT 系统选项寄存器的详细信息。
#if defined(DISABLE_RST)
sSIMConfig.sBits.bDisableRESET = 1;//禁用 RESET 脚
#endif
再比如, 要禁用 NMI 引脚功能, 作为普通 IO 口, 和禁用 RESET 管脚同样的方法, 进行 DISABLE_NMI宏定义即可, 即在文件开头#define DISABLE_NMI
#if defined(DISABLE_NMI)
sSIMConfig.sBits.bDisableNMI = 1;//禁用不可屏蔽中断的管脚, 具体查看 NV32 管脚分配图
#endif
3.进行其他相关的配置以后, 通过结构体传参进行 SIM 模块的初始化: SIM_Init(&sSIMConfig);具体的 SIM模块的功能和函数见 NV32F100x 参考手册和 SIM 模块的相关说明
特别提醒:
*在禁用 RESET 时, 要考虑复位方式, 禁用 RESET 管脚时 MCU 可以通过上电复位解决。
*在禁用 SWD 调试方式时, 要考虑再次下载调试。 在开发板上烧录时, 在烧写之前拔掉上电跳帽, 按住复位开关, 重新插上跳帽, 在此过程中, 按键一直按住, 点击烧录按钮, 此时松开跳帽对 MCU 进行复位。

4

主题

20

帖子

60

积分

初级技术员

发表于 2017-6-9 09:58 | 显示全部楼层 |返回版面
没有权限上传文档,这是来自官方的一个文档。

22

主题

222

帖子

663

积分

高级技术员

发表于 2017-6-20 22:04 | 显示全部楼层 |返回版面
这样的操作看着别扭,从STM32转过来的还真的不习惯。

19

主题

212

帖子

636

积分

高级技术员

发表于 2017-6-23 19:08 | 显示全部楼层 |返回版面
有官方的例程可以提高吗?

14

主题

113

帖子

339

积分

资深技术员

发表于 2017-6-30 12:19 | 显示全部楼层 |返回版面
123ycli 发表于 2017-6-9 09:58
以 PA5 脚为例, 讲解一下在系统初始化过程中的管脚复用问题
首先通过看 NV32 的管脚分配图

学习了!但总的来说NV32的手册还不是很详细
您需要登录后才可以回帖 登录 | 注册 手机登录

本版积分规则

关闭

热门推荐上一条 /2 下一条

分享 快速回复 返回顶部 返回列表