新手入门
- 积分
- 11
- 金钱
- 11
- 注册时间
- 2022-10-26
- 在线时间
- 2 小时
|
1金钱
- typedef volatile unsigned int u32;
- typedef struct{
- u32 CTRL;
- u32 LOAD;
- u32 VAL;
- u32 Calib;
- }SysTick_type;
- extern SysTick_type* SysTick;
- SysTick_type* SysTick=(SysTick_type *)0xE00E010;
- void system_tick(void);
- int main()
- {
- system_tick();
- while(1);
- }
- void system_tick(void)
- {
- u32 temp;
- SysTick->LOAD=10; //时间加载
- SysTick->VAL=0x00; //清空计数器
- SysTick->CTRL=0x01 ; //开始倒数
- do
- {
- temp=SysTick->CTRL;
- }while((temp&0x01)&&!(temp&(1<<16))); //等待时间到达
- SysTick->CTRL=0x00; //关闭计数器
- SysTick->VAL =0X00; //清空计数器
- }
复制代码
跟着o老师的视频走了一遍,报错。把标准例程的函数拷贝过来也是报错,可直接运行蜂鸣器例程就没有问题。
下面是调试信息,运行完SysTick->LOAD=10;就开始报错。
关于滴答定时器寄存器的信息在参考手册里也没找到,着实头疼啊。
报错前:
报错后:
|
|