ST
嵌入式小娄
越努力、越幸运、成长往往从失去开始。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
字节对其,内存中位置分析
去掉字节对齐:__ALIGN_BEGIN g_usbd_property_descritpor 内存地址:0x20000112 非4的倍数。在进行USB 通讯,设备信息交互通讯 是按4字节进行对齐补齐,如果不进行对齐补齐,默认去对齐补齐位置获取数据 导致通讯获取描述符失败。#define USB_LEN_OS_PROPERTY_DESC 0x28 //特征描述符。通过以上分析 字节对比补齐是 在内存中自动按地址对齐补齐。原创 2023-08-15 18:10:21 · 263 阅读 · 0 评论 -
经验分享一:UART 可进入空闲中断,DMA却没数据
先配置DMA、再配置串口会导致接收不到数据,寄存器配置完全正确,非常奇怪的问题。GD32E508 UART3 可进入空闲中断、但DMA通道却没有数据。先配置串口再配置DMA。原创 2023-07-11 19:48:41 · 1090 阅读 · 0 评论 -
行业交流群,大佬解析,保留下
由于在type之后加上##连接符,所以在代码中使用实际的type名称时,它会根据具体的type生成相应的函数名。定义了一个名为type的结构体名称,这个结构体的类型是struct type。这里使用了typedef关键字,将struct type重命名为type,以便在代码中可以使用type来代表这个结构体类型。通过使用宏定义和typedef,可以在代码中使用INTERFACE代表类型,并根据具体的类型生成对应的函数名。这样可以在代码中定义各种具体的type,并使用相应的函数进行操作。原创 2023-06-26 15:45:46 · 193 阅读 · 0 评论 -
读取W25QXX数据时的注意事项
使用w25读取flash数据的时候,上电第一次读取数据总是出错,之后读取数据便是正确的了,刚开始以为是片选脚的速率比SPI的速率低而导致先进行了SPI读取,然后再拉低的片选。因为查看cube发现片选脚的为最低速率10MHZ,而spi的速率则达到了12M以上,但是修改了之后,发现还是会出现这一个问题,最后使用逻辑分析仪,查看时序,才发现W25根本就没有识别到第一次发送的数据,片选脚在上电时是拉低的,而W25所需要的片选脚有效电平就是低电平,之后将默认电平改为高电平,完美解决问题。...转载 2021-01-18 11:31:48 · 782 阅读 · 0 评论 -
STM32操作TFBS4711红外模块、数据发送抓波分析
序言 : STM32内部USART支持红外IrDA物理层协议,可以配置成IrDA模式直接驱动TFBS4711,实现红外收发。一:STM32CubeMx对串口配置Irda模式如下所示:根据以上配置,CubeMX自动生成代码:二、单片机(红外模块)发送端添加以下代码:while(1) 中增加以下代码: HAL_IRDA_Transmit(&hirda1, (uint8_t*)"ABCD", 4, 0xFFFF); // 发送符号 HAL_Delay...原创 2021-01-07 13:00:12 · 3625 阅读 · 14 评论 -
STM32 BootLoader跳转之前关闭全部中断
// 关闭全局中断 DISABLE_INT(); // 关闭滴答定时器,复位到默认值 SysTick->CTRL = 0; SysTick->LOAD = 0; SysTick->VAL = 0; // 设置所有时钟到默认状态,使用HSI时钟 HAL_RCC_DeInit(); // 关闭所有中断,清除所有中断挂起标志 for (int i = 0; i < 8; i++) { NVIC->ICER[i]=0xFFFFFF...原创 2020-12-30 15:52:27 · 4467 阅读 · 0 评论 -
IAR BootLoader,APP程序互相跳转,进入Hard_fault 错误,
IAR BootLoader,APP程序互相跳转,进入Hard_fault 错误捣鼓两天,才定位到问题所在,cubmax 创建工程IAR工程优化等级,过高,调低一点即可原创 2020-09-25 18:15:16 · 1245 阅读 · 0 评论
分享