关于GD32F103寄存器(地址)编程,及模板

[复制链接]
2291|8
 楼主| zeshoufx 发表于 2019-10-18 11:10 | 显示全部楼层 |阅读模式
一、寄存器编程
寄存器编程只需要一个启动文件即可,说是寄存器编程,严格说来是采用地址编程
二、配置函数
  1. #include "led.h"


  2. void led_init(void)
  3. {
  4.         /* GPIOE时钟使能*/
  5.         (*((volatile unsigned int*)(0x40021000+0x18)))|=1<<6;
  6.         /* PE10推挽输出,50Mhz*/
  7.         (*((volatile unsigned int*)(0x40011800+0x04)))=0x00000300;
  8.         /* PE10输出低电平,LED熄灭*/
  9.         (*((volatile unsigned int*)(0x40011800+0x0c)))&=~(unsigned int)(1<<10);
  10. }


  11. void led_on(void)
  12. {
  13.         /* PE10输出高电平,LED点亮*/
  14.         (*((volatile unsigned int*)(0x40011800+0x0c)))|=(unsigned int)(1<<10);
  15. }

  16. void led_off(void)
  17. {
  18.         /* PE10输出低电平,LED熄灭*/
  19.         (*((volatile unsigned int*)(0x40011800+0x0c)))&=~(unsigned int)(1<<10);
  20. }

  21. /* 延时函数*/
  22. void delay(unsigned int n)
  23. {
  24.         while(n--);
  25. }



三、主函数


  1. /*昆明电器科学研究所 张恩寿 2019年10月17日*/

  2. #include "led.h"


  3. int main(void)
  4. {
  5.         led_init();
  6.         while(1)
  7.         {
  8.                 led_on();
  9.                 delay(600000);
  10.                 led_off();
  11.                 delay(600000);
  12.         }
  13. }



四、结论
发现采用库函数编程存在一些冗余,采用地址编程简单明了

1-led.zip

55.59 KB, 下载次数: 37

地址编程模板

评论

你这个程序在你那能跑软件仿真吗?我这仿真提示无法读写  发表于 2023-10-30 19:36
gwsan 发表于 2019-11-12 13:28 | 显示全部楼层
非常感谢楼主分享
kxsi 发表于 2019-11-12 14:00 | 显示全部楼层
非常感谢楼主分享
wowu 发表于 2019-11-12 14:09 | 显示全部楼层
非常感谢楼主分享
nawu 发表于 2019-11-12 14:52 | 显示全部楼层
非常感谢楼主分享
qcliu 发表于 2019-11-12 15:17 | 显示全部楼层
非常感谢楼主分享
34af9uc 发表于 2023-10-23 19:32 | 显示全部楼层
int main(void)
{
while(1);
       
}
竟然这么写
 楼主| zeshoufx 发表于 2023-10-24 09:38 | 显示全部楼层
34af9uc 发表于 2023-10-23 19:32
int main(void)
{
while(1);

这个是单片机开发的一般框架
您需要登录后才可以回帖 登录 | 注册

本版积分规则

67

主题

1991

帖子

15

粉丝
快速回复 在线客服 返回列表 返回顶部