1 Star 0 Fork 2

Kevin/智能手表

forked from fjyh/智能手表 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.c 3.85 KB
一键复制 编辑 原始数据 按行查看 历史
fjyh 提交于 2024-05-07 21:36 . 完成闹钟到点蜂鸣器响
#include "App.h"
#include "Config.h"
#include "Exti.h"
#include "GPIO.h"
#include "KEY.h"
#include "NVIC.h"
#include "PCF8563.h"
#include "Switch.h"
#include "UART.h"
#include "oled.h"
#include "MOTOR.h"
#include "Buzzer.h"
static void GPIO_config(void) {
// UART1
GPIO_InitTypeDef GPIO_InitStructure; // 结构定义
GPIO_InitStructure.Pin = GPIO_Pin_0 | GPIO_Pin_1; // 指定要初始化的IO,
GPIO_InitStructure.Mode =
GPIO_PullUp; // 指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
GPIO_Inilize(GPIO_P3, &GPIO_InitStructure); // 初始化
// INT3
GPIO_InitStructure.Pin = GPIO_Pin_7; // 指定要初始化的IO,
GPIO_InitStructure.Mode =
GPIO_PullUp; // 指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
GPIO_Inilize(GPIO_P3, &GPIO_InitStructure); // 初始化
// SPI ----------------------------------------------------------------------
// OLED
GPIO_InitStructure.Pin =
GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_3 | GPIO_Pin_6; // 指定要初始化的IO,
GPIO_InitStructure.Mode =
GPIO_PullUp; // 指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
GPIO_Inilize(GPIO_P1, &GPIO_InitStructure); // 初始化
GPIO_InitStructure.Pin = GPIO_Pin_7; // 指定要初始化的IO,
GPIO_InitStructure.Mode =
GPIO_PullUp; // 指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
GPIO_Inilize(GPIO_P4, &GPIO_InitStructure); // 初始化
GPIO_InitStructure.Pin = GPIO_Pin_0; // 指定要初始化的IO,
GPIO_InitStructure.Mode =
GPIO_PullUp; // 指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
GPIO_Inilize(GPIO_P5, &GPIO_InitStructure); // 初始化
}
void UART_config(void) {
// >>> 记得添加 NVIC.c, UART.c, UART_Isr.c <<<
COMx_InitDefine COMx_InitStructure; // 结构定义
COMx_InitStructure.UART_Mode =
UART_8bit_BRTx; // 模式,
// UART_ShiftRight,UART_8bit_BRTx,UART_9bit,UART_9bit_BRTx
COMx_InitStructure.UART_BRT_Use =
BRT_Timer1; // 选择波特率发生器, BRT_Timer1, BRT_Timer2 (注意:
// 串口2固定使用BRT_Timer2)
COMx_InitStructure.UART_BaudRate = 115200ul; // 波特率, 一般 110 ~ 115200
COMx_InitStructure.UART_RxEnable = ENABLE; // 接收允许, ENABLE或DISABLE
COMx_InitStructure.BaudRateDouble = DISABLE; // 波特率加倍, ENABLE或DISABLE
UART_Configuration(
UART1, &COMx_InitStructure); // 初始化串口1 UART1,UART2,UART3,UART4
NVIC_UART1_Init(ENABLE,
Priority_1); // 中断使能, ENABLE/DISABLE; 优先级(低到高)
// Priority_0,Priority_1,Priority_2,Priority_3
UART1_SW(
UART1_SW_P30_P31); // 引脚选择,
// UART1_SW_P30_P31,UART1_SW_P36_P37,UART1_SW_P16_P17,UART1_SW_P43_P44
}
/******************** INT配置 ********************/
void Exti_config(void) {
EXTI_InitTypeDef Exti_InitStructure; // 结构定义
Exti_InitStructure.EXTI_Mode =
EXT_MODE_RiseFall; // 中断模式, EXT_MODE_RiseFall,EXT_MODE_Fall
Ext_Inilize(EXT_INT3, &Exti_InitStructure); // 初始化
NVIC_INT3_Init(ENABLE,
Priority_0); // 中断使能, ENABLE/DISABLE; 优先级(低到高)
// Priority_0,Priority_1,Priority_2,Priority_3
}
void sys_init() {
Clock_t c;
EAXSFR(); // 扩展寄存器使能
GPIO_config();
UART_config();
PCF8563_init();
Exti_config();
KEY_Init();
MOTOR_Init();
Buzzer_init();
OLED_Init();
OLED_ColorTurn(0); // 0正常显示,1 反色显示
OLED_DisplayTurn(0); // 0正常显示 1 屏幕翻转显示
OLED_Clear();
EA = 1; // 中断总开关
// 准备数据
c.year = 2024;
c.month = 5;
c.day = 6;
c.hour = 23;
c.minute = 59;
c.second = 45;
c.week = 1;
// 写入日期时间
PCF8563_set_clock(c);
}
void start_main() _task_ 0 {
// 初始化外设
sys_init();
// 创建其他任务
os_create_task(TASK_MENUS);
os_create_task(TASK_KEYS);
// 销毁回收自己
os_delete_task(0);
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/qifenghuang/smart-watch.git
git@gitee.com:qifenghuang/smart-watch.git
qifenghuang
smart-watch
智能手表
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385