基于ARM内核的STM32寄存器检测有人做过吗?

[复制链接]
2174|4
 楼主| qingtian506 发表于 2013-3-21 09:47 | 显示全部楼层 |阅读模式
我现在做的这个项目是以STM32的库函数来编写的,现在做的这个模块程序是为了矫正寄存器配置在程序运行中发生错误时,可以自动改正。如:
  1. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
  2.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  3.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  4.     GPIO_Init(GPIOE, &GPIO_InitStructure);
其中比如说程序在运行时,将GPIO_Mode一不小心改成了GPIO_Mode_IPD或其他,可通过读取寄存器的值来查看正确与否,如果发现错误就改正。

大家有这么写过的吗?还是有其他寄存器配置检测的方法呢?
先谢谢了。
cool_coder 发表于 2013-3-21 11:19 | 显示全部楼层
手册上的一句话,希望对你有用。
The I/Os alternate function configuration can be locked if needed following a specific sequence in order to avoid spurious writing to the I/Os registers.
 楼主| qingtian506 发表于 2013-3-21 16:21 | 显示全部楼层
那我可不可以这样理解,IO寄存器配置时,可以调用这个LOCK功能,从而在程序运行中,根本不会使寄存器配置出错。这个功能是不是在寄存器配置一次性写入的有效呢?像类似程序运行时会更改某位等,就不必了吧。
ayb_ice 发表于 2013-3-22 15:56 | 显示全部楼层
锁住后就不让改了
 楼主| qingtian506 发表于 2013-5-28 11:23 | 显示全部楼层
哎呀,结贴吧。除了IO口的配置可以用库里自带的锁定配置函数外,其他的寄存器只能读判写了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

16

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部