/******************** (C) COPYRIGHT 2013 www.armjishu.com ********************
* 文件名 :SZ_STM32F107VC_LIB.c
* 描述 :提供STM32F107VC神舟IV号开发板的库函数
* 实验平台:STM32神舟开发板
* 作者 :www.armjishu.com
**********************************************************************************/
/* Includes ------------------------------------------------------------------*/
#include "SZ_STM32F107VC_LIB.h"
__IO uint32_t TimingDelay;
GPIO_TypeDef* GPIO_PORT[LEDn] = {LED1_GPIO_PORT, LED2_GPIO_PORT, LED3_GPIO_PORT, LED4_GPIO_PORT};
const uint16_t GPIO_PIN_NUM[LEDn] = {LED1_PIN_NUM, LED2_PIN_NUM, LED3_PIN_NUM, LED4_PIN_NUM};
const uint16_t GPIO_PIN[LEDn] = {LED1_PIN, LED2_PIN, LED3_PIN, LED4_PIN};
const uint32_t GPIO_CLK[LEDn] = {LED1_GPIO_CLK, LED2_GPIO_CLK, LED3_GPIO_CLK, LED4_GPIO_CLK};
GPIO_TypeDef* BUTTON_PORT[BUTTONn] = {KEY1_BUTTON_GPIO_PORT, KEY2_BUTTON_GPIO_PORT, KEY3_BUTTON_GPIO_PORT, KEY4_BUTTON_GPIO_PORT};
const uint16_t BUTTON_PIN_NUM[BUTTONn] = {KEY1_BUTTON_PIN_NUM, KEY2_BUTTON_PIN_NUM, KEY3_BUTTON_PIN_NUM, KEY4_BUTTON_PIN_NUM};
const uint16_t BUTTON_PIN[BUTTONn] = {KEY1_BUTTON_PIN, KEY2_BUTTON_PIN, KEY3_BUTTON_PIN, KEY4_BUTTON_PIN};
const uint32_t BUTTON_CLK[BUTTONn] = {KEY1_BUTTON_GPIO_CLK, KEY2_BUTTON_GPIO_CLK, KEY3_BUTTON_GPIO_CLK, KEY4_BUTTON_GPIO_CLK};
const uint16_t BUTTON_EXTI_LINE[BUTTONn] = {KEY1_BUTTON_EXTI_LINE, KEY2_BUTTON_EXTI_LINE, KEY3_BUTTON_EXTI_LINE, KEY4_BUTTON_EXTI_LINE};
const uint16_t BUTTON_PORT_SOURCE[BUTTONn] = {KEY1_BUTTON_EXTI_PORT_SOURCE, KEY2_BUTTON_EXTI_PORT_SOURCE, KEY3_BUTTON_EXTI_PORT_SOURCE, KEY4_BUTTON_EXTI_PORT_SOURCE};
const uint16_t BUTTON_PIN_SOURCE[BUTTONn] = {KEY1_BUTTON_EXTI_PIN_SOURCE, KEY2_BUTTON_EXTI_PIN_SOURCE, KEY3_BUTTON_EXTI_PIN_SOURCE, KEY4_BUTTON_EXTI_PIN_SOURCE};
const uint16_t BUTTON_IRQn[BUTTONn] = {KEY1_BUTTON_EXTI_IRQn, KEY2_BUTTON_EXTI_IRQn, KEY3_BUTTON_EXTI_IRQn, KEY4_BUTTON_EXTI_IRQn};
USART_TypeDef* COM_USART[COMn] = {SZ_STM32_COM1, SZ_STM32_COM2};
GPIO_TypeDef* COM_TX_PORT[COMn] = {SZ_STM32_COM1_TX_GPIO_PORT, SZ_STM32_COM2_TX_GPIO_PORT};
GPIO_TypeDef* COM_RX_PORT[COMn] = {SZ_STM32_COM1_RX_GPIO_PORT, SZ_STM32_COM2_RX_GPIO_PORT};
const uint32_t COM_USART_CLK[COMn] = {SZ_STM32_COM1_CLK, SZ_STM32_COM2_CLK};
const uint32_t COM_TX_PORT_CLK[COMn] = {SZ_STM32_COM1_TX_GPIO_CLK, SZ_STM32_COM2_TX_GPIO_CLK};
const uint32_t COM_RX_PORT_CLK[COMn] = {SZ_STM32_COM1_RX_GPIO_CLK, SZ_STM32_COM2_RX_GPIO_CLK};
const uint16_t COM_TX_PIN[COMn] = {SZ_STM32_COM1_TX_PIN, SZ_STM32_COM2_TX_PIN};
const uint16_t COM_RX_PIN[COMn] = {SZ_STM32_COM1_RX_PIN, SZ_STM32_COM2_RX_PIN};
const uint8_t STM32F10x_STR[] = {"\r\n"\
" _____ _______ __ __ ____ ___ ______ __ ___\r\n"\
" / ____|__ __| \\/ |___ \\__ \\| ____/_ |/ _ \\\r\n"\
"| (___ | | | \\ / | __) | ) | |__ | | | | |_ __\r\n"\
" \\___ \\ | | | |\\/| ||__ < / /| __| | | | | \\ \\/ /\r\n"\
" ____) | | | | | | |___) / /_| | | | |_| |> <\r\n"\
"|_____/ |_| |_| |_|____/____|_| |_|\\___//_/\\_\\神舟系列开发板\r\n"\
"\r\n"};
uint32_t STM32DeviceSerialID[3]; /* 全局变量IntDeviceSerial存放读到的设备ID */
/**-------------------------------------------------------
* @函数名 delay
* @功能 简单的delay延时函数.
* @参数 延迟周期数 0--0xFFFFFFFF
* @返回值 无
***------------------------------------------------------*/
void delay(__IO uint32_t nCount)
{
for (; nCount != 0; nCount--);
}
/**-------------------------------------------------------
* @函数名 NVIC_GroupConfig
* @功能 配置NVIC中断优先级分组函数.
* 默认配置为1比特表示主优先级, 3比特表示次优先级
* 用户可以根据需要修改
* @参数 无
* @返回值 无
***------------------------------------------------------*/
void NVIC_GroupConfig(void)
{
/* 配置NVIC中断优先级分组:
- 1比特表示主优先级 主优先级合法取值为 0 或 1
- 3比特表示次优先级 次优先级合法取值为 0..7
- 数值越低优先级越高,取值超过合法范围时取低bit位
*/
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
/*==================================================================================
NVIC_PriorityGroup | 主优先级范围 | 次优先级范围 | 描述
==================================================================================
NVIC_PriorityGroup_0 | 0 | 0-15 | 0 比特表示主优先级
| | | 4 比特表示次优先级
----------------------------------------------------------------------------------
NVIC_PriorityGroup_1 | 0-1 | 0-7 | 1 比特表示主优先级
| | | 3 比特表示次优先级
----------------------------------------------------------------------------------
NVIC_PriorityGroup_2 | 0-3 | 0-3 | 2 比特表示主优先级
| | | 2 比特表示次优先级
----------------------------------------------------------------------------------
NVIC_PriorityGroup_3 | 0-7 | 0-1 | 3 比特表示主优先级
| | | 1 比特表示次优先级
----------------------------------------------------------------------------------
NVIC_PriorityGroup_4 | 0-15 | 0 | 4 比特表示主优先级
| | | 0 比特表示次优先级
==================================================================================*/
}
/**-------------------------------------------------------
* @函数名 SZ_STM32_SysTickInit
* @功能 初始化系统定时器SysTick
* 用户可以根据需要修改
* @参数 每秒中断次数
* @返回值 无
***------------------------------------------------------*/
void SZ_STM32_SysTickInit(uint32_t HzPreSecond)
{
/* HzPreSecond = 1000 to Setup SysTick Timer for 1 msec interrupts.
------------------------------------------
1. The SysTick_Config() function is a CMSIS function which configure:
- The SysTick Reload register with value passed as function parameter.
- Configure the SysTick IRQ priority to the lowest value (0x0F).
- Reset the SysTick Counter register.
- Configure the SysTick Counter clock source to be Core Clock Source (HCLK).
- Enable the SysTick Interrupt.
- Start the SysTick Counter.
2. You can change the SysTick Clock source to be HCLK_Div8 by calling the
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8) just after the
SysTick_Config() function call. The SysTick_CLKSourceConfig() is defined
inside the misc.c file.
3. You can change the SysTick IRQ priority by calling the
NVIC_SetPriority(SysTick_IRQn,...) just after the SysTick_Config() function
call. The NVIC_SetPriority() is defined inside the core_cm3.h file.
4. To adjust the SysTick time base, use the following formula:
Reload Value = SysTick Counter Clock (Hz) x Desired Time base (s)
- Reload Value is the parameter to be passed for SysTick_Config() function
- Reload Value should not exceed 0xFFFFFF
*/
if (SysTick_Config(SystemCoreClock / HzPreSecond))
{
/* Capture error */
while (1);
}
}
/**-------------------------------------------------------
* @函数名 SysTickDelay
* @功能 系统定时器实现的延时函数,可以在用户程序中调用
* 用户可以根据需要修改
* @参数 延迟周期数,延迟时间为nTime/HzPreSecond
* 误差为 -1/HzPreSecond
* @返回值 无
***------------------------------------------------------*/
void SysTickDelay(__IO uint32_t nTime)
{
TimingDelay = nTime;
while(TimingDelay != 0);
}
/**-------------------------------------------------------
* @函数名 TimingDelay_Decrement
* @功能 系统节拍定时器服务函数调用的子函数
* 将全局变量TimingD
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
单片机设计,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答! 软件开发设计:PHP、QT、应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备、移动设备等 操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 云计算与大数据:数据集、包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。
资源推荐
资源详情
资源评论
收起资源包目录
基于STM32开发板的ECU模拟器.zip (29个子文件)
cm
stm32f10x_conf.h 3KB
mapinit.ini 147B
CAN20.h 2KB
usb_func
inc
hw_config.h 2KB
usb_desc.h 3KB
usb_regs.h 30KB
usb_prop.h 3KB
platform_config.h 3KB
usb_conf.h 8KB
usb_pwr.h 2KB
usb_istr.h 4KB
src
usb_prop.c 14KB
usb_pwr.c 7KB
usb_endp.c 5KB
usb_desc.c 13KB
hw_config.c 13KB
usb_istr.c 11KB
UCCmds32.cmf 2KB
tim_clock.h 159B
simu_data.h 69KB
SZ_STM32F107VC_LIB.h 12KB
xprintf.c 15KB
SZ_STM32F107VC_LIB.c 23KB
CAN20.c 14KB
main.c 22KB
xprintf.h 2KB
stm32f10x_it.c 10KB
stm32f10x_it.h 1KB
tim_clock.c 3KB
共 29 条
- 1
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 封装swagger组件,提供全新UI以及无状态登录接口调用解决方案
- 小龙坎支局2024年4月渠道积分核对数据.xlam
- onlyoffice搭建及与alist使用的view.html
- Quadcopter-UAV-attitude-estimation-linux常用命令大全demo
- Quadcopter-UAV-attitude-estimation-based-on-数据库课程设计
- pbdlib-python-master.zip
- 43904245495352013_base.apk
- 基于springboot+vue + redis的工作流审批系统
- 【qt基础语法及实际案例解析】qt基础语法及实际案例解析
- 结课作业.psd
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功