专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
51单片机
低功耗设计,关闭外设用什么样的电路好?
2020-01-21 21:35
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
11272
9
9
最近设计个东西,外设比较费电,打算不使用的时候直接断电算了
外设是3.3V和5V的
之前没设计过,以前就做过液晶背光控制,直接拿个三极管
然后前端时间看到说有用mos管的,找了一通也没找到合适的电路。。。
求教大家了~
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
28条回答
YZ_SQS
1楼-- · 2020-01-11 04:15
这个是CANTEST接收到的数据 第一个是STM发送的数据 第二第三是下面返回的数据 STM32只接收到了 第二个数据 第三个数据没接受到 第二第三个数据的时间间隔基本没有。。。
加载中...
YZ_SQS
2楼-- · 2020-01-11 05:01
发现了一个问题 命令下发是8秒一次 然后只识别第一个接收的数据 然后在第三次的时候两个命令返回时调了个头 我设置的是识别一次则做一次标志
加载中...
gaolf_2012
3楼-- · 2020-01-11 07:06
精彩回答 2 元偷偷看……
加载中...
think_a_second
4楼-- · 2020-01-11 08:59
1. 间隔理解不对。既然发送者能发出来,必定有时间间隔。同一总线内,最少间隔也等于帧长*波特率吧。CAN分析仪的时间认为是同一毫秒内的,你的波特率设置很高?测试时把各级波特率设小点,也排除一下终端电阻问题。
2. STM32 CAN本身有3个接收缓冲区,接收2帧不成问题的。中断函数要尽量短,只把数据放入缓冲区,有空再在主程序读。
加载中...
YZ_SQS
5楼-- · 2020-01-11 12:07
目前已解决 解决的办法是 中断配置 CAN_ITConfig(CAN1,CAN_IT_FMP0 | CAN_IT_FF0 | CAN_IT_FOV0,ENABLE); 然后中断函数最后用 if(SET == CAN_GetITStatus(CAN1,CAN_IT_FF0)) //???
{
CAN_ClearITPendingBit(CAN1,CAN_IT_FF0);
}
else if(SET == CAN_GetITStatus(CAN1,CAN_IT_FOV0)) //????
{
CAN_ClearITPendingBit(CAN1,CAN_IT_FOV0);
}
else if(SET == CAN_GetITStatus(CAN1 , CAN_IT_FMP0)) //1?????
{
CAN_ClearITPendingBit(CAN1 , CAN_IT_FMP0);
}
结尾
加载中...
YZ_SQS
6楼-- · 2020-01-11 16:54
主要还是我对底层的配置不够熟悉 通过阅读此人的csdn博客了解的 附网址:
https://blog.csdn.net/flydream0/article/list/4?t=1
加载中...
上一页
1
2
3
4
5
下一页
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
2. STM32 CAN本身有3个接收缓冲区,接收2帧不成问题的。中断函数要尽量短,只把数据放入缓冲区,有空再在主程序读。
{
CAN_ClearITPendingBit(CAN1,CAN_IT_FF0);
}
else if(SET == CAN_GetITStatus(CAN1,CAN_IT_FOV0)) //????
{
CAN_ClearITPendingBit(CAN1,CAN_IT_FOV0);
}
else if(SET == CAN_GetITStatus(CAN1 , CAN_IT_FMP0)) //1?????
{
CAN_ClearITPendingBit(CAN1 , CAN_IT_FMP0);
}
结尾
一周热门 更多>