当前位置:网站首页>CMT2380F32模块开发7-reset例程
CMT2380F32模块开发7-reset例程
2022-08-11 05:24:00 【andylauren】
本芯片具有 7 个复位信号来源,每个复位信号都可以让 CPU 重新运行,绝大多数寄存器会被复位到复位值,程序计数器 PC 会被复位指向 00000000。
数字区域上电掉电复位 POR
外部 Reset PAD,低电平为复位信号
WDT 复位
PCA 复位
LVD 低电压复位
Cortex-M0+ SYSRESETREQ 软件复位
Cortex-M0+ LOCKUP 硬件复位
每个复位源由相应的复位标志进行指示。复位标志均由硬件置位,需要用户软件清零。
本样例主要展示Reset模块的使用方法,有一种方式是将复位标志寄存器通过P34电平输出。也可以通过串口查看输出,串口会输出寄存器值。
这个开发板目前可以试验两个复位源,一个是通过KEY2实现的引脚复位,也可以通过reset按键实现的硬件掉电复位。需要注意的是测试硬件掉电复位时需要不连接串口的RXD引脚,因为RXD引脚会串入电流,导致无法完全掉电。
// 7 6 5 4 3 2 1 0
// RSTB sysreq lockup PCA WDT LVD Por15 Por5v
Reset_GetCause(&stcVal); //获取复位源标志位类型
DDL_ZERO_STRUCT(stcUartIrqCb);
DDL_ZERO_STRUCT(stcMulti);
DDL_ZERO_STRUCT(stcBaud);
DDL_ZERO_STRUCT(stcBtConfig);
//通道端口配置
Gpio_SetFunc_UART1TX_P35();
Gpio_SetFunc_UART1RX_P36();
//外设时钟使能
Clk_SetPeripheralGate(ClkPeripheralBt, TRUE); //模式0/2可以不使能
Clk_SetPeripheralGate(ClkPeripheralUart1, TRUE);
stcUartIrqCb.pfnRxIrqCb = NULL;
stcUartIrqCb.pfnTxIrqCb = NULL;
stcUartIrqCb.pfnRxErrIrqCb = NULL;
stcConfig.pstcIrqCb = &stcUartIrqCb;
stcConfig.bTouchNvic = FALSE;
stcConfig.enRunMode = UartMode1;
stcMulti.enMulti_mode = UartNormal;
stcConfig.pstcMultiMode = &stcMulti;
stcBaud.bDbaud = 0u; //双倍波特率功能
stcBaud.u32Baud = 9600u; //更新波特率位置
stcBaud.u8Mode = UartMode1; //计算波特率需要模式参数
pclk = Clk_GetPClkFreq();
timer = Uart_SetBaudRate(UARTCH1, pclk, &stcBaud);
stcBtConfig.enMD = BtMode2;
stcBtConfig.enCT = BtTimer;
Bt_Init(TIM1, &stcBtConfig); //调用basetimer1设置函数产生波特率
Bt_ARRSet(TIM1, timer);
Bt_Cnt16Set(TIM1, timer);
Bt_Run(TIM1);
Uart_Init(UARTCH1, &stcConfig);
Uart_EnableIrq(UARTCH1, UartRxIrq);
Uart_ClrStatus(UARTCH1, UartRxFull);
Uart_EnableFunc(UARTCH1, UartRx);
Gpio_InitIO(TEST_PORT, TEST_PIN, GpioDirOut); //
M0P_GPIO->P3OUT_f.P34 = 0; // P34输出Low-level
u8val = *((uint8_t*)&stcVal);
for (i = 0; i < 8; i++) {
if ((1 << i) & u8val) //遍历复位源标志位
{
RepeatPin(i + 1); //当复位源标志位为1时调用IO输出函数
}
}
Reset_Clear(u8val_temp); //清除复位源标志位
Uart_SendData(UARTCH1, u8val);
代码主要就是使能串口和GPIO,然后通过Reset_GetCause(&stcVal); 获取复位源标志位类型,最后通过串口打印出来。
边栏推荐
- 安全帽识别
- 360°大视野安全帽识别系统-深度学习智能视频分析
- >>技术应用:用于 REST API 开发和测试的 10 大工具
- Maykel Studio - Django Web Application Framework + MySQL Database Fourth Training
- 微信小程序canvas画图,保存页面为海报
- Safety helmet identification system - escort for safe production
- Safety helmet recognition system
- OpenPCDet installs the latest version: spconv in one step
- Mysql导入UTF8编码数据库命令总结
- Solutions to the 7th Jimei University Programming Contest (Individual Contest)
猜你喜欢
websocket聊天通讯(全局封装)
解决SmartRefreshLayout/SwipeRefreshLayout与RecyclerView下拉冲突的问题
安全帽佩戴识别系统介绍
关于mmdetection框架实用小工具说明
目标检测——LeNet
梅科尔工作室-DjangoWeb 应用框架+MySQL数据库第六次培训
Mei cole studios - fifth training DjangoWeb application framework + MySQL database
梅科尔工作室-HarmonyOS应用开发第三次培训
智慧工地 安全帽识别系统
TAMNet: A loss-balanced multi-task model for simultaneous detection and segmentation
随机推荐
2022年最新安全帽佩戴识别系统
Node-1.高性能服务器
Maykel Studio - Django Web Application Framework + MySQL Database Second Training
基于uniapp开发的聊天界面
解决Glide图片缓存问题,同一url换图片不起作用问题
LiDAR Snowfall Simulation for Robust 3D Object Detection
Mysql导入UTF8编码数据库命令总结
360° large field of view helmet recognition system-deep learning intelligent video analysis
>>技术应用:*aaS服务定义
LiDAR Snowfall Simulation for Robust 3D Object Detection
Node-3.构建Web应用(二)
【uniapp】跨端开发问题记录
通用的 kernel和 userspace Makefile
360°大视野安全帽识别系统-深度学习智能视频分析
Node-3.构建Web应用(一)
CVPR2020: Seeing Through Fog Without Seeing Fog
目标检测——Faster-RCNN 之 RCNN
OpenPCDet安装最新版:spconv一步到位
Severe Weather 3D Object Detection Dataset Collection
LAGRANGIAN FLUID SIMULATION WITH CONTINUOUS CONVOLUTIONS