发 帖  
[问答]

【高手问答】从事单片机软硬件开发15年的工程师们,与您探讨单片机软硬件设计

26788 单片机 PCB 电路设计
2021-3-2 16:58:38   3 评论 分享淘帖 邀请回答 举报
3 条评论
  • 2021-3-4 11:00

    老师们好,我想请问下在单片机编程中,我看到好多使用联合体加结构体的方式,这样使用的目的是基于什么考虑的啊?

    张飞实战电子蔡琰 回复 weizhang: 2021-3-5 11:28

    结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。
    结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙),共用体占用的内存等于最长的成员占用的内存。共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。
    当两者联合使用时结构体内定义共用体时,用结构体成员来方便引用共用体成员,尤其单片机编程中的比较多,这样既能用不同数据类型的变量,又能节省空间,一般用作临时变量,无需保存等就可以在结构体中定义共用体,也可以共用体中定义结构体。最终要根据实际情况来定义。

  • 2021-5-22 15:14

    非常有用的文章,学习了

12个回答
2021-3-2 17:35:14 评论

举报

2021-3-2 17:38:13 2 评论

举报

2 条评论
  • 2021-3-3 17:54

    1.在帮助手册中搜索Select image mode 对应11.9.1章节,Generating a Memory Image 有关于这个模式的描述,在使用这个模式的时候一定要使用ROMS指令,来指定内存范围。所以这个一定要配合具体的程序来实现。

  • 2021-3-3 17:57

    image 模式和 非image 模式内存空间的连续性是不一样的,所以生成的HEX内容应该也是不一样的。

2021-3-2 17:47:23 1 评论

举报

1 条评论
  • 2021-3-2 22:31

    你的问题很普遍的复杂,因为导致问题的原因可能有很多,既可能是硬件原因,也可能是软件原因,还有可能是系统不稳定造成的,不是几句话可以说得清楚的,你可以把板子和功能说明书一起寄给我,我们一起找问题。

2021-3-2 17:56:17 1 评论

举报

1 条评论
  • 2021-3-2 22:26

    前面图中18.1.4中明确说明,ECCP模块在选择捕获和PWM功能这两种情况下,是不能共用同一个定时器作为时钟的,如果你希望这两个功能的输入时间相同,你可以选择两个不同的定时器作为时钟,并将这两个定时器的时钟设为一致相同即可。

2021-3-3 10:52:04 1 评论

举报

1 条评论
  • 2021-3-3 11:48

    ①一般来说,仿真器都是工作在一个稳压的环境(通常为 5V)。如果用仿真
    器的 A/D 时,要注意其 A/D 参考电压是由仿真器内部给出,还是需要外部提供。
    ②A/D 转换需要一个连续的时钟周期,所以在仿真时不能用单步调试的方法,否
    则会造成 A/D 采样值不准。
    ③至于 A/D 采样不稳定,可以在 A/D 输入口加一电容,起到滤波作用;在软件
    处理时采用中值滤波的方法。

2021-3-3 10:54:45 1 评论

举报

1 条评论
  • 2021-3-3 11:49

    在车载 DVD 系统,最好选择高档 DVD 机,因为高档 DVD 机都采用电子防
    震系统(ADVANCEDESP),当记忆缓冲区内的读数降低,先进的电子防震设计会
    以双速读数系统,做出比正常速度快两倍的读数速率,以减低噪声,即使连续震
    荡仍可避免跳线情况出现,现在就说说什幺叫电子防震。简单地说:电子防震就
    是一个信号的储存--释放过程,首先 CD 要先把信号进行提前读取,也就是我们
    见到机子的加速,再把信号储存在 RAM 中,而我们在开防震的时候所听到的就
    是经过 RAM 的声音,这样就是它的过程。当没有防震时是由于信号是 1 比 1 读
    取的,所以当受到冲击后,就会出现跳音。而当开了防震时,机子受到冲击后,
    由 RAM 释放出来的声音使音乐不停地播放,而与此同时,光头迅速进行复位检
    索,当检索到信号后立即补充,所以不会出现跳音。大概的情况就是这样。但是
    这样还没有满足用家的要求,由于这种的方法带来的时间短,通常只有 3 秒,所
    以跳音的机会还是蛮高,如果增大 RAM 又带来造价的增高因为 RAM 这东西价
    格较贵,尤其是质量好的。

2021-3-4 14:15:40 1 评论

举报

1 条评论
  • 2021-3-4 14:27

    NVIC是单片机内部的中断管理系统,也就是说这个串口通信中使用的是中断的方式,有可能是发送中断,也有可能是接收中断,当然串口通信并不一定要使用中断。只要能实现你想要的功能,方法不局限。

2021-3-4 14:20:17 1 评论

举报

1 条评论
  • 2021-3-10 10:42

    你好,可以检查写多个数据时,数据时序是否正确,写时间是否溢出,另外再关注一下SPI的时钟相位,时钟极性,以及时钟高地电平时间是否和SD卡时序要求相符合。

2021-3-9 15:41:21 1 评论

举报

1 条评论
  • 2021-3-10 10:31

    这个有可能是硬件问题,也有可能是软件问题,你需要检查你的硬件以及软件,从两方面下手去检查。可以在一块没有问题的硬件平台上测试程序,使用排除法,排除问题。

2021-3-9 15:43:40 1 评论

举报

1 条评论
  • 2021-3-10 10:46

    你好,你上述提到了Appli_state无法进入,那么就需要继续找为什么无法进入,是哪一部分的执行结果影响到这个状态了,一级一级往前溯源,这样就可以找到问题的根源了。

2021-3-18 01:06:47 1 评论

举报

1 条评论
  • 2021-3-20 22:03

    你好,跟你说一个思路,第一个程序通过串口接收第二个程序的数据,可以边接收边存储,等到全部接收完之后,跳到第二个程序代码开头的地方执行。通信协议可以自定义

2022-1-5 10:33:03 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

您需要登录后才可以回帖 登录/注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
快速回复 返回顶部 返回列表
关注微信公众号

电子发烧友网

电子发烧友论坛

社区合作
刘勇
联系电话:15994832713
邮箱地址:liuyong@huaqiu.com
社区管理
elecfans短短
微信:elecfans_666
邮箱:users@huaqiu.com
关闭

站长推荐 上一条 /6 下一条

快速回复 返回顶部 返回列表