在做实验的时候,考虑到F103C8T6根F103ZET6似乎除了资源不同,同属一个系列的,于是将ZET6的延时函数delay直接用在C8T6上,发现延时的时候比正常时间短很多,设置1秒延时,实际出来的大概是0.16秒,一直找不到原因,到处搜索,无果。
http://www.openedv.com/posts/list/0/63500.htm这个帖子里面有一丁点的讨论,不过似乎给出的解决方案不能解决共性问题(至少我按照给出的方法没法解决)
http://www.openedv.com/thread-101469-1-1.html这个帖子里面给了一个模板,测试了一下,它的延时是准确的
对比了好久,尝试找出他们的区别,也无果。
有哪位已经把这个弄明白了的大佬,请不要吝啬自己的智慧,分享出来,让以后遇到这种问题的小伙伴有一个好的参照。。
谢谢啦
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK_DIV8);
把这两句加在systeminit最后两句上,然后DELAY函数里直接给delay_ms和delay_us赋值,
static unsigned int fac_us=9; //us延时倍乘数
static unsigned long fac_ms=9000;
根据系统时钟赋值,这是72M的赋值。
楼主试试看行不行!!
一周热门 更多>