打印
[MM32硬件]

【MM32F5270开发板试用】外设例程的分析与使用

[复制链接]
1117|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
[color=rgb(252, 85, 49) !important]【MM32F5270开发板试用】外设例程的分析与使用

MINDSDK的工程的例程的基本结构如下图所示:
是一个最基本的单片机的裸机工程结构。基本上BOARD_InitPins是所有使用的IO的初始化,并不是只有Console的。

看一下GPIO的函数GPIO_WriteBit的原型。



使用特权

评论回复
沙发
雨果喝水|  楼主 | 2023-3-29 17:32 | 只看该作者
可以看到函数是很简洁的,基本上可以看作是寄存器操作了。
不像是ST的HAL库,封装的层比较多,也有比较多的断言机制 函数:assert_param,而且为了兼容性,一个GPIO的API函数体内,代码也比较多,逻辑也复杂一些。
纵观MINDSDK的代码,简洁、高效贯穿其中。
任何决策都有两面性,现在ST也推出了LL库,把效率也提上来了。
而随着产品线的增加,产品的增多,灵动也要开始布局兼容性问题了。

使用特权

评论回复
板凳
雨果喝水|  楼主 | 2023-3-29 17:32 | 只看该作者
GPIO的这个外设例程,就是根据按键的输入,来决定不同的LED的亮灭情况。



再看一下Time的例程。

使用特权

评论回复
地板
雨果喝水|  楼主 | 2023-3-29 17:32 | 只看该作者
app_tim_init()算是用户层的函数,脱离了device库,这部分是要用户自己定义的。
中断函函数,这里是宏定义全新定义的,原的有函数名是在启动文件中定义的。这与ST等单片机的启动文件的机制是一样的。

使用特权

评论回复
5
雨果喝水|  楼主 | 2023-3-29 17:32 | 只看该作者
现在把两个工程合并成一个。
通过如下两步,就可以操作初始化的GPIO了。
BOARD_Init——>BOARD_InitBootClocks中初始化时钟
BOARD_Init——>BOARD_InitPins中初始化引脚

使用特权

评论回复
6
雨果喝水|  楼主 | 2023-3-29 17:33 | 只看该作者
这里初始化的是LED0,时间设置成0.5s。
这时,串口会有输出,这个是定时器的中断函数里的输出程序。

使用特权

评论回复
7
雨果喝水|  楼主 | 2023-3-29 18:15 | 只看该作者

使用特权

评论回复
8
雨果喝水|  楼主 | 2023-3-29 18:15 | 只看该作者
又在中断函数中增加了LED的控制
bool led=false;
void BOARD_TIM_IRQHandler(void)
{
    uint32_t flags = TIM_GetInterruptStatus(BOARD_TIM_PORT);
    if ( 0u != (flags & TIM_STATUS_UPDATE_PERIOD ) ) /* Check update status. */
    {
        putchar('*');
                led=!led;
                GPIO_WriteBit(GPIOI, GPIO_PIN_0, led);
    }
    TIM_ClearInterruptStatus(BOARD_TIM_PORT, flags);
}

使用特权

评论回复
9
雨果喝水|  楼主 | 2023-3-29 18:17 | 只看该作者
效果如下:

使用特权

评论回复
10
雨果喝水|  楼主 | 2023-3-29 18:17 | 只看该作者

使用特权

评论回复
11
雨果喝水|  楼主 | 2023-3-29 18:17 | 只看该作者

使用特权

评论回复
12
modesty3jonah| | 2023-4-13 15:49 | 只看该作者
外设指的是什么呢              

使用特权

评论回复
13
kkzz| | 2023-4-13 20:32 | 只看该作者
MM32F5270这个是什么板子呢

使用特权

评论回复
14
fengm| | 2023-4-13 20:42 | 只看该作者
实系统定时器SysTick也可以实现软件定时  

使用特权

评论回复
15
sesefadou| | 2023-4-13 21:39 | 只看该作者
较准确的延时函数。                 

使用特权

评论回复
16
nomomy| | 2023-4-13 21:49 | 只看该作者
这个芯片的性能还可以吗              

使用特权

评论回复
17
beacherblack| | 2023-4-13 22:20 | 只看该作者
MM32F5270怎么实现 HAL库微秒延时函数?

使用特权

评论回复
18
robincotton| | 2023-4-13 22:34 | 只看该作者
使用系统的SysTick节拍定时器来进行精准延时程序

使用特权

评论回复
19
phoenixwhite| | 2023-4-13 22:40 | 只看该作者
SysTick定时器常用来做延时任务;在实时系统中,则常用来做系统时钟。

使用特权

评论回复
20
zzsczz| | 2023-4-18 08:26 | 只看该作者
官方有没有BSP的说明书啊 ,代码 啃不动

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

1153

帖子

0

粉丝