代码是简单的点灯,b站视频包括上电效果、开发环境配置以及更换代码位置之后的开发过程。这里附上点灯代码的主程序(原本想把整个工程都以附件形式附上,奈何不支持便作罢),后续想法是基于此开发板做一套温湿度检测系统。
main函数代码:
#define _MAIN_C_
/* Files include */
#include "platform.h"
#include "gpio_led_toggle.h"
#include "main.h"
int main(void)
{
PLATFORM_Init();
GPIO_LED_Toggle_Sample();
while (1)
{
}
}
led灯模块代码:
#define _GPIO_LED_TOGGLE_C_
/* Files include */
#include <stdio.h>
#include "platform.h"
#include "gpio_led_toggle.h"
void GPIO_Configure(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
GPIO_StructInit(&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11 ;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStruct);
GPIO_StructInit(&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStruct);
GPIO_WriteBit(GPIOB, GPIO_Pin_10 | GPIO_Pin_11, Bit_SET);
GPIO_WriteBit(GPIOC, GPIO_Pin_6 | GPIO_Pin_7, Bit_SET);
}
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 GPIO_LED_Toggle_Sample(void)
{
printf("\r\nTest %s", __FUNCTION__);
GPIO_Configure();
while (1)
{
GPIO_IO_Toggle(GPIOB, GPIO_Pin_10);
GPIO_IO_Toggle(GPIOB, GPIO_Pin_11);
GPIO_IO_Toggle(GPIOC, GPIO_Pin_6);
GPIO_IO_Toggle(GPIOC, GPIO_Pin_7);
PLATFORM_DelayMS(100);
}
}
#ifndef _GPIO_LED_TOGGLE_H_
#define _GPIO_LED_TOGGLE_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "hal_conf.h"
void GPIO_LED_Toggle_Sample(void);
#ifdef __cplusplus
}
#endif
#endif /* _GPIO_LED_TOGGLE_H_ */


