TA的每日心情 | 开心 2024-8-5 17:13 |
---|
签到天数: 333 天 连续签到: 1 天 [LV.8]以坛为家I
|
本帖最后由 xiaoshen-372360 于 2023-7-24 11:26 编辑
首先觉得mm32也开始学习ST做Hall库了,但是实际上感觉mm32的HAL库并没有实现硬件的抽象化,所以觉得这个Hall库还只是改了个名字,换汤不换药,没有从本质上说明这些东西。然后今天正好天气太热,就没有出去玩,就在家折腾了一下mm32的板子,本质上是想跟进一下进度,毕竟还是有了这个试用名额来之不易,前段时间就听说了,mm32的灯点不亮,今天拿到硬件一看,确实点不亮……兄弟们诚不欺我,果然是焊接反了,然后我就想到了两年前的航顺,也是一个试用,把按键教和GND短路了……好像从那个时候起,我就没有用过航顺的东西了……
话虽如此,但是不知道是贴片厂家弄错了还是怎么回事,原理图是没有错的,PCB也是没有错的,包括LED的灯的指示都是正确的,那就只能怪贴片厂家了,在图上个,只有一个LED,是PB9
然后我就按照以前的习惯,自己重新建立了工程,并编写LED驱动代码
MAIN函数就比较简单
int main(void)
{
InitDelay();
LED_Init();
while(1)
{
LED_Test();
}
}
然后就是我把LED和Delay放在一个文件里面了,主要是因为这个板子只有一个灯,单独一个文件就太麻烦。
然后其他的函数就是这样了
- #include "Delay.h"
- volatile uint32_t PLATFORM_DelayTick;
- void InitDelay(void)
- {
- RCC_ClocksTypeDef RCC_Clocks;
- RCC_GetClocksFreq(&RCC_Clocks);
- if (SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000))
- {
- while (1)
- {
- }
- }
- NVIC_SetPriority(SysTick_IRQn, 0x0);
- }
- /***********************************************************************************************************************
- * @brief Millisecond delay
- * @note none
- * @param Millisecond: delay time unit
- * @retval none
- *********************************************************************************************************************/
- void Delay_1ms(uint32_t Millisecond)
- {
- PLATFORM_DelayTick = Millisecond;
- while (0 != PLATFORM_DelayTick)
- {
- }
- }
- /*---------------- */
- void GPIO_IO_Toggle(GPIO_TypeDef *GPIOn, uint16_t PINn)
- {
- if (Bit_RESET == GPIO_ReadOutputDataBit(GPIOn, PINn))
- {
- GPIO_SetBits(GPIOn, PINn);
- }
- else
- {
- GPIO_ResetBits(GPIOn, PINn);
- }
- }
- /*---------------- */
- void LED_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStruct;
- RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
- GPIO_StructInit(&GPIO_InitStruct);
- GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
- GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;
- GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_Init(GPIOB, &GPIO_InitStruct);
- }
- void LED_Test(void)
- {
- GPIO_IO_Toggle(GPIOB,GPIO_Pin_9);
- Delay_1ms(500);
- GPIO_IO_Toggle(GPIOB,GPIO_Pin_9);
- Delay_1ms(500);
- }
复制代码
编译没有报错,孩子睡着了,所以只有明天的时候给大家补一个闪灯的视频和照片了。
最后还是把工程和代码都贴上来,怕自己哪一天忘记了删除了,也好有个备份。
代码:
MM32SPIN 0230_Demo.rar
(367.96 KB, 下载次数: 2)
|
|