工具/软件:TI C/C++编译器
我们使用的是 TM4C129EKCPDT 芯片。
我想做的是、每次 IO 端口状态改变时、状态(uint32_t 的变量数据)都会保存到 HIBDATA 寄存器(调用 HibernateDataSet)中、并且在电源重新通电时可以再次读取之前记录的 IO 状态。(HibernateDataGet 函数被读出)
硬件操作是通过按钮电池为 VBAT (引脚68)引脚供电、而不是为 XSOC0或 XSOC1 (引脚66/67)和晶体振动供电。是否存在问题?
参考 TI 演示,我编写了以下简化代码(实际上我不确定如何配置):
uint32_t pin_vel = 0x00000001;
uint32_t bk_pin = 0x00000000;
Set_HIBERNATE ()
{
HibernateDataSet (&pin_vel、1);//pin_vel 根据 IO 的状态变化
}
get_HIBERNATE ()
{
SysCtlPeripheralEnable (SYSCTL_Periph_HIBERNATE);//启用休眠模块。
HibernateClockConfig (HIBERNATE_OSC_LOWDRIVE);
ui32Status = HibernateIntStatus (0);
HibernateIntClear (ui32状态);
if (HibernateIsActivate())
{
HibernateDataGet (&bk_pin、1);//将数据读取到 bk_pin
rt_kprintf ("读取值=%ld\r\n"、bk_pin);//获取断电前写入的值并将其输出
}
}
void hip_thread()
{
//其他初始化
get_hibernate()
while (1)
{
get_Hibernate ();//不断写入"pin_vel"值,"pin_vel"将发生变化
delay();
}
}
程序运行打印以获得值0、而不是写入值。 如何修改软件?
我需要详细的配置。我多次尝试自己配置、但测试不起作用。
因为我是第一次使用 TI 的芯片、所以不是很熟悉。我最好能给我一个简单的程序、它只能实现我想要的。
谢谢!