头像-182130

单片小白

  • 11南昌市
  • 嵌入式
  • 医疗电子

个人成就

获得 28 次赞

帮助过59人

嵌套结构体指针内的指针成员

// 数据帧结构体定义 #pragma pack(push 1) typedef struct { uint8_t cmd; uint8_t param; void *data; }info_t; typedef struct { uint16_t head; uint8_t addr; uint8_t index; uint8_t size; uint8_t sep; info_t info; uint16_t crc; uint32_t tail; }comm_frame_t; #pragma pack(pop) // 假设frame_buf是接收到的数据 static uint8_t frame_buf[] = {0xee 0x7e 0x02 0x03 0x04 0x55 0x06 0x70 0x29 0x12 0x21 0x20 0x07 0x21 0xff 0xff 0xfc 0xff}; // 想使用如下方式进行简单快速的解包 void unpack(void) { comm_frame_t *frame = (comm_frame_t *)frame_buf; frame->info.data = &frame_buf[9]; printf("head:0x%04X " frame->head); printf("my_addr:0x%02X " frame->my_addr); printf("aim_addr:0x%02X " frame->aim_addr); printf("index:0x%02X " frame->index); printf("size:%d " frame->size); printf("sep:0x%02X " frame->sep); printf("cmd:0x%02X " frame->info.cmd); printf("param:0x%02X " frame->info.param); printf("data:0x%X.\r\n" *(uint32_t *)(frame->info.data)); } 问题: 1、其他成员都正常,在索引信息段内的data时 *(uint32_t *)(frame->info.data)出错,得到的结果貌似是一个地址; 2、单独直接使用 value = *(uint32_t *)&frame_buf[9]肯定没问题,但加上 frame->info.data = &frame_buf[9]; 再执行前者得到的结果和上一条相同; 百思不得其解,请大佬指教

RTThread 添加组件后group被自动删除了

在MDK5下使用RT-Thread,往系统添加组件后使用 scons --target=mdk5更新工程;再打开后工程中自己原先建立的文件和group被自动删除了,要自己再重新添加进来。每次这样不是很麻烦吗?不知道前辈们是怎么解决的

ADAS1000读取ECG帧数据问题

使用ADI的ADAS1000芯片采集ECG心电数据,移植官方的驱动例程,单独读写配置寄存器都是正确的,导联脱落也能正常检测到。读取帧表头frameS(0x40)后,表头能正常反映导联脱落,ECG数据能绘制出心电图曲线,但是所有5个通道的数据都是一样的为同一个值。请问有么有前辈使用过,还请指点下。万分感谢!!!

python3下spyder+pyqt5不兼容

有没有大神指点下迷津。Python3下spyder和pyqt5不兼容的问题,装了pyqt5后spyder就不能用了。网上找了很久也没有看到可以解决的办法,还是说两个就没有可以兼容的版本?

EVAL-SDP-CB1Z + ADAS1000SD

研究ADI的心电方案Demo,但是按照手册指导操作后,SDP连接电脑识别不了USB驱动,FAE只会说上官网看看,但官网能下的驱动都装了,没用。有没有大神或前辈能支支招

移远EC20模块AT访问HTTPS服务器

这段时间在学习使用移远EC20模块,遇到个问题就是在访问HTTP服务器时是可以没有问题的。但是在项目需求中要求使用HTTPS协议以保证安全性。在访问HTTPS时遇到问题,按照datasheet提供的流程配置下来最后还是报错。应该是在SSL安全验证和证书这块配置有问题,不知各位前辈是否遇到过,能否提供案例供小弟参考下或者给些提示建议

MDK5中报错 RDDI-DAP Error

环境为MDK5.26+STM32Cube_FW_F1_V1.7.0库建立的工程,调试器为CMSIS-DAP。下载时出现RDDI-DAP Error错误,进入Debug后自动就退出来了。使用标准库建的工程就没有这个问题。求解!!!

STM32关总中断方式的区别

STM32F1中关总中断好像有好多种方式代码可以实现,例如 __set_FAULTMASK(1) ;  和  CPU_INT_DIS() ;  当然 CPU_INT_DIS() 是属于uCOS-III 中的函数,在用到uCOS-III 时,这两种方式有区别吗?