__ALIGN_BEGIN static uint8_t USBD_HID_Desc[USB_HID_DESC_SIZ] __ALIGN_END = { /* 18 */ 0x09, /* bLength: HID Descriptor size */ HID_DESCRIPTOR_TYPE, /* bDescriptorType: HID */ 0x11, /* bcdHID: HID Class Spec release number */ 0x01, 0x00, /* bCountryCode: Hardware target country */ 0x01, /* bNumDescriptors: Number of HID class descriptors to follow */ 0x22, /* bDescriptorType */ HID_MOUSE_REPORT_DESC_SIZE, /* wItemLength: Total length of Report descriptor */ 0x00, }; 查看__ALIGN_BEGIN定义是在ARM,GNUC编译环境下是4字节对齐,但在IAR下不用对齐,为什么? |
目前新项目,MCU采用STM32F407VGT6,文件存在TF卡(SDIO),请问能否通过F4的USB把TF卡里面的txt和excel文件拷贝到U盘?哪个USB可以实现?
STM32F407ZGT6假死现象,看门狗不起作用
STM32F407VGT6使用PLL倍频后芯片会反复重启
CAN接收丢包
使用Cubeprogrammer无法连接、连接G431和一块H750的板子可以连上但是连另外一块H750的板子和F407的板子就直接报错,这个应该如何解决。
SPI 通信,既有单字节数据传输,又有多字节数据传输,该如正确使用 DMA?
SD卡log存储
STM32F413ZGT6的NRST需要接上拉电阻吗
STM32F4的串口在配置DMA之后,不能使用高波特率吗?
劳烦大佬们看一下,为什么我的USART1 这样配置接收不了数据啊
不是IAR环境下就要这个对齐,只是换了个写法而已。
在IAR里面使用的#pragma 语句来指定对齐方式的。
不是IAR环境下不要这个对齐,只是换了个写法而已。
在IAR里面使用的#pragma 语句来指定对齐方式的。
跳到这个关键字定义的地方确实没有对IAR下进行对齐,usb_hid.c文件你可以看一下
不妨自己加上 #pragma data_alignment=4 来满足USB DMA传输时字对齐。
以这里的USB应用为例,库函数里有专门提醒:
Macro to get variable aligned on 4-bytes, for __ICCARM__ the directive "#pragma data_alignment=4" must be used instead.
嗯,我知道IAR下对齐要加这个关键字,我拷贝的这个定义是ST提供的USB Middlewares里的固件,这算不算是个bug 了?