|
点亮PA5引脚的LED。 软件用IAR 7.2 /* stm32f072 nucleo test program m0 最小系统测试程序 不需要头文件和库函数,很小巧实用! 用于I/o口翻转频率测试、跑马灯演示! 作者: 大秦正声,小电子 日期: 2014.12.21 博客: http://yang96381.blog.163.com 邮箱: yang96381@163.com */ #define DELAY_COUNT 0xfFFFF unsigned long dat; void Delay( long int Count) { for(; Count!= 0;Count--); } int main(void) { *(long*)0x40021014=0x007e0014;//A i/0口使能 *(long*)0x48000000=0x28555555;//输出 *(long*)0x48000008=0x0cffffff;//high speed *(long*)0x4800000c=0x24555555;//上拉 while(1) {*(long*)0x48000014=0xffff;//高 Delay(DELAY_COUNT);///延时,翻转测试不用 *(long*)0x48000014=0x0;//低 Delay(DELAY_COUNT);///延时,翻转测试不用 } } |
微信公众号
手机版
谢谢!程序的可读性有待提高!好处是输出速度提高了!
如果直接访问寄存器,使用GPIOX->ODR和这个的输出速度应该没有区别。
说是速度提高了,应该是直接访问寄存器和库函数相比,速度应该提高
说的对!
新版本
/*
stm32f072 nucleo test program
m0 最小系统测试程序
不需要头文件和库函数,很小巧实用!
用于I/o口翻转频率测试、跑马灯演示!
作者: 大秦正声,小电子
日期: 2015.1.6
博客: http://yang96381.blog.163.com
邮箱: yang96381@163.com
*/
#define DELAY_COUNT 0xFFFFF
#define PA_OUT *(long*)0x48000014
#define PA_SPEED *(long*)0x48000008
#define RCC_AHBENR *(long*)0x40021014
#define PA_MODER *(long*)0x48000000
void Delay( long int Count)
{
for(; Count!= 0;Count--);
}
int main(void)
{
RCC_AHBENR=0x007e0014;//A i/0口使能
PA_MODER =0x28555555;//输出
PA_SPEED=0x0cffffff;//high speed
while(1)
{PA_OUT=0xffff;//高
Delay(DELAY_COUNT);///延时,翻转测试不用
PA_OUT=0x0000;//低
Delay(DELAY_COUNT);///延时,翻转测试不用
}
}
已经修改了!
这个程序和之前的没有什么区别。是使用GPIOA->ODR,这样就不需要知道ODR的地址了
可读性提高了啊