查看: 987|回复: 0

[评测分享] 【灵动Motor-DK电机控制板】-02-假装点了个灯

[复制链接]
  • TA的每日心情
    开心
    2024-4-7 13:52
  • 签到天数: 326 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2023-7-23 22:56:38 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 xiaoshen-372360 于 2023-7-24 11:26 编辑

    首先觉得mm32也开始学习ST做Hall库了,但是实际上感觉mm32的HAL库并没有实现硬件的抽象化,所以觉得这个Hall库还只是改了个名字,换汤不换药,没有从本质上说明这些东西。然后今天正好天气太热,就没有出去玩,就在家折腾了一下mm32的板子,本质上是想跟进一下进度,毕竟还是有了这个试用名额来之不易,前段时间就听说了,mm32的灯点不亮,今天拿到硬件一看,确实点不亮……兄弟们诚不欺我,果然是焊接反了,然后我就想到了两年前的航顺,也是一个试用,把按键教和GND短路了……好像从那个时候起,我就没有用过航顺的东西了……

    话虽如此,但是不知道是贴片厂家弄错了还是怎么回事,原理图是没有错的,PCB也是没有错的,包括LED的灯的指示都是正确的,那就只能怪贴片厂家了,在图上个,只有一个LED,是PB9
    11.png
    然后我就按照以前的习惯,自己重新建立了工程,并编写LED驱动代码
    MAIN函数就比较简单
    int main(void)
    {
            InitDelay();
            LED_Init();
            while(1)
            {
           LED_Test();
            }
    }


    然后就是我把LED和Delay放在一个文件里面了,主要是因为这个板子只有一个灯,单独一个文件就太麻烦。
    然后其他的函数就是这样了

    1. #include "Delay.h"
    2. volatile uint32_t PLATFORM_DelayTick;

    3. void InitDelay(void)
    4. {
    5.     RCC_ClocksTypeDef RCC_Clocks;

    6.     RCC_GetClocksFreq(&RCC_Clocks);

    7.     if (SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000))
    8.     {
    9.         while (1)
    10.         {
    11.         }
    12.     }

    13.     NVIC_SetPriority(SysTick_IRQn, 0x0);
    14. }

    15. /***********************************************************************************************************************
    16.   * @brief  Millisecond delay
    17.   * @note   none
    18.   * @param  Millisecond: delay time unit
    19.   * @retval none
    20.   *********************************************************************************************************************/
    21. void Delay_1ms(uint32_t Millisecond)
    22. {
    23.     PLATFORM_DelayTick = Millisecond;

    24.     while (0 != PLATFORM_DelayTick)
    25.     {
    26.     }
    27. }
    28. /*----------------  */
    29. void GPIO_IO_Toggle(GPIO_TypeDef *GPIOn, uint16_t PINn)
    30. {
    31.     if (Bit_RESET == GPIO_ReadOutputDataBit(GPIOn, PINn))
    32.     {
    33.         GPIO_SetBits(GPIOn, PINn);
    34.     }
    35.     else
    36.     {
    37.         GPIO_ResetBits(GPIOn, PINn);
    38.     }
    39. }

    40. /*----------------  */

    41. void LED_Init(void)
    42. {
    43.         GPIO_InitTypeDef GPIO_InitStruct;
    44.         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);

    45.         GPIO_StructInit(&GPIO_InitStruct);
    46.         GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_9;
    47.         GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;
    48.         GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_Out_PP;
    49.         GPIO_Init(GPIOB, &GPIO_InitStruct);
    50. }




    51. void LED_Test(void)
    52. {
    53.         GPIO_IO_Toggle(GPIOB,GPIO_Pin_9);
    54.         Delay_1ms(500);
    55.         GPIO_IO_Toggle(GPIOB,GPIO_Pin_9);
    56.         Delay_1ms(500);
    57. }
    复制代码


    编译没有报错,孩子睡着了,所以只有明天的时候给大家补一个闪灯的视频和照片了。

    最后还是把工程和代码都贴上来,怕自己哪一天忘记了删除了,也好有个备份。
    代码: MM32SPIN 0230_Demo.rar (367.96 KB, 下载次数: 2)
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-5-20 15:14 , Processed in 0.107972 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.