Files
new_f_3/User/bsp/bsp.c
刘正航 609eb878d1 New
2026-04-16 16:55:01 +08:00

118 lines
4.2 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
*********************************************************************************************************
*
* 模块名称 : BSP模块(For STM32F103)
* 文件名称 : bsp.c
* 版 本 : V1.0
* 说 明 : 这是硬件底层驱动程序模块的主文件。主要提供 bsp_Init()函数供主程序调用。主程序的每个c文件可以在开
* 头 添加 #include "bsp.h" 来包含所有的外设驱动模块。
*
* 修改记录 :
* 版本号 日期 作者 说明
* V1.0 2015-09-01 armfly 正式发布
*
* Copyright (C), 2015-2020, 安富莱电子 www.armfly.com
*
*********************************************************************************************************
*/
#include "bsp.h"
uint32_t RxCount = 0;
uint32_t TxCount = 0;
/*
*********************************************************************************************************
* 函 数 名: bsp_Init
* 功能说明: 初始化硬件设备。只需要调用一次。该函数配置CPU寄存器和外设的寄存器并初始化一些全局变量。
* 全局变量。
* 形 参:无
* 返 回 值: 无
*********************************************************************************************************
*/
void bsp_Init(void)
{
/*
由于ST固件库的启动文件已经执行了CPU系统时钟的初始化所以不必再次重复配置系统时钟。
启动文件配置了CPU主时钟频率、内部Flash访问速度和可选的外部SRAM FSMC初始化。
系统时钟缺省配置为72MHz如果需要更改可以修改 system_stm32f103.c 文件
*/
/* 优先级分组设置为4 */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
bsp_InitKey(); /* 初始化按键 */
bsp_InitTimer(); /* 初始化系统滴答定时器 (此函数会开中断) */
/* 初始化串口驱动 */
USART_Config();
/* 配置使用DMA模式 */
USARTx_DMA_Config();
USART_DMACmd(DEBUG_USARTx, USART_DMAReq_Rx, ENABLE);
BEEP_InitHard(); /* 配置蜂鸣器GPIO */
bsp_InitI2C(); /* 配置I2C总线 */
bsp_InitDigitalTube(); // 初始化数码管控制端口
bsp_Init_Drv8880_Hard();
bsp_InitStepMoto();
}
/*
*********************************************************************************************************
* 函 数 名: bsp_RunPer10ms
* 功能说明: 该函数每隔10ms被Systick中断调用1次。详见 bsp_timer.c的定时中断服务程序。一些处理时间要求不严格的
* 任务可以放在此函数。比如:按键扫描、蜂鸣器鸣叫控制等。
* 形 参:无
* 返 回 值: 无
*********************************************************************************************************
*/
void bsp_RunPer10ms(void)
{
bsp_KeyScan(); /* 每10ms扫描按键一次 */
BEEP_Pro(); /* 蜂鸣器定时处理 */
// bsp_FpgaPowerMainLoop(30); // 给FPAGA延迟供电延迟时间位30*10ms
}
/*
*********************************************************************************************************
* 函 数 名: bsp_RunPer1ms
* 功能说明: 该函数每隔1ms被Systick中断调用1次。详见 bsp_timer.c的定时中断服务程序。一些需要周期性处理的事务
* 可以放在此函数。比如:触摸坐标扫描。
* 形 参: 无
* 返 回 值: 无
*********************************************************************************************************
*/
void bsp_RunPer1ms(void)
{
bsp_DigitalTubeMainLoop();
}
/*
*********************************************************************************************************
* 函 数 名: bsp_Idle
* 功能说明: 空闲时执行的函数。一般主程序在for和while循环程序体中需要插入 CPU_IDLE() 宏来调用本函数。
* 本函数缺省为空操作。用户可以添加喂狗、设置CPU进入休眠模式的功能。
* 形 参:无
* 返 回 值: 无
*********************************************************************************************************
*/
void bsp_Idle(void)
{
/* --- 喂狗 */
/* --- 让CPU进入休眠由Systick定时中断唤醒或者其他中断唤醒 */
/* 例如 emWin 图形库,可以插入图形库需要的轮询函数 */
// GUI_Exec();
/* 例如 uIP 协议可以插入uip轮询函数 */
}
/***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/