【GD32F427开发板试用】+微秒级精准定时+模拟IIC获取传感器寄存器值

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:灿_bFTZNb

工程基于MDK的rt-thread V3.1.5版本的操作系统进行以下开发,本文重点是在微秒定时器配置思路以及模拟IIC读取AS5600磁编码器寄存器值。

按照个人工作习惯,首先分析一下开发板上都有那些硬件和引出的IO口,此次使用的开发板内核以及参数:

GD32F427 - ARM Cortex-M4 Core
    Frequency up to 200 MHz
    Flash access zero wait state
    Single-cycle multiplier and hardware divider
    Memories
    Flash size from 512KB to 3072KB
    SRAM size from 256KB to  768KB with HW parity checking
    30KB ISP loader ROM 更详细参数在数据手册中。

我们先从上到下,从左至右依次看过去,最左上角的是来自兆易创新的GD32F103c8t6,使用自家芯片作为烧录器也是芯片厂家非常常规的做法,紧贴着烧录器电路的右边是输入电源的降压以及一颗电源指示灯和由GPIOC GPIO_PIN_6控制的LED(高电平点亮)和两个轻触按钮以及BOOT1/2引脚的跳线作为不同的芯片启动方式,接下来就是咱们的主控芯片GD32F427RKT6,需要注意的是这里的外部高速晶振是25MHz,因此配置芯片的最高速度可以达到200M。最底下的是USB3300,这是一款USB高速PHY,采用ULPI接口,USB3300具有Host模式和OTG模式,可用于USB通信的主机设备和从机设备上,感兴趣的可以配合上位机做出更有意思的功能。左右两边的排针将所有的IO口引出,方便我们进行开发,丝印也非常清晰,电路板就先分析到这里,接下来就是编程环节。

1.配置基于MDK的rtthread操作系统

配置rtthread的nano版本,这里可以参考rtthread官网的配置方法,这里不再赘述,创建两个线程,一个为LED指示灯,一个作为采集传感器数据。

简简单单的配置一下,接下来就是初始化微秒级定时器的基本参数,

定时器的基本配置与使用IO进行翻转,测量IO高低电平之间的时间,这里使用逻辑分析仪测出高电平持续时间1us,周期2us,注意这里的延时是阻塞的,由于时间非常短基本不会干扰到操作系统的正常运行,此延时提供给模拟IIC功能。

接下来就是编写IIC基本通讯,这里就不赘述,感兴趣的可以直接看源码,这里主要读取AS5600两个寄存器0x0C&0x0D,获取到值后将(寄存器值* 360)/4096就是当前角度值!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值