你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f072 NUCLEO I/O口寄存器直接操作编程!

[复制链接]
大秦正声 发布时间:2015-1-6 12:44
点亮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);///延时,翻转测试不用
   }
}

收藏 评论21 发布时间:2015-1-6 12:44

举报

21个回答
大秦正声 回答时间:2015-1-6 13:01:30
欢迎大家指正!
QianFan 回答时间:2015-1-6 13:07:19
这样访问内存好任性,就不能直接使用GPIOx吗?
大秦正声 回答时间:2015-1-6 13:27:15
QianFan 发表于 2015-1-6 13:07
这样访问内存好任性,就不能直接使用GPIOx吗?

谢谢!程序的可读性有待提高!好处是输出速度提高了!
QianFan 回答时间:2015-1-6 13:29:11
大秦正声 发表于 2015-1-6 13:27
谢谢!程序的可读性有待提高!好处是输出速度提高了!

如果直接访问寄存器,使用GPIOX->ODR和这个的输出速度应该没有区别。
说是速度提高了,应该是直接访问寄存器和库函数相比,速度应该提高
大秦正声 回答时间:2015-1-6 13:52:06
QianFan 发表于 2015-1-6 13:29
如果直接访问寄存器,使用GPIOX->ODR和这个的输出速度应该没有区别。
说是速度提高了,应该是直接访问寄 ...

说的对!
大秦正声 回答时间:2015-1-6 14:24:20
本帖最后由 大秦正声 于 2015-1-6 14:29 编辑

新版本
/*
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);///延时,翻转测试不用
     }
}
大秦正声 回答时间:2015-1-6 14:36:52
QianFan 发表于 2015-1-6 13:07
这样访问内存好任性,就不能直接使用GPIOx吗?

已经修改了!
QianFan 回答时间:2015-1-6 15:02:09

这个程序和之前的没有什么区别。是使用GPIOA->ODR,这样就不需要知道ODR的地址了
大秦正声 回答时间:2015-1-6 15:06:36
QianFan 发表于 2015-1-6 15:02
这个程序和之前的没有什么区别。是使用GPIOA->ODR,这样就不需要知道ODR的地址了 ...

可读性提高了啊
123下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版