
嵌入式
文章平均质量分 56
sjxpf922
遇到问题,解决问题,记录问题,迎接问题
展开
-
Linux内核中bytestream kfifo学习
定义kfifo结构体#define __STRUCT_KFIFO_COMMON(datatype, recsize, ptrtype) \ union { \ struct __kfifo kfifo; \ datatype *type; \ const datatype *const_type; \ char (*rectype)[recsize]; \ ptrtype *ptr; \ ptrtype const *ptr_const; \ }#define .原创 2022-02-22 21:16:26 · 979 阅读 · 0 评论 -
NO ST-LINK detected/ST-LINK USB communication error
解决办法①下载并安装STLINK驱动②更新STLINK固件③找到你的keil5安装目录>ARM>STLink>USBDriver目录下的stlink_winusb_uninstall.bat 点击执行(即先卸载),然后再执行stlink_winusb_install.bat(即重新安装)...原创 2022-02-18 12:46:10 · 7956 阅读 · 1 评论 -
SWD烧录时 No target connected
1、原因①接线问题②开启了__HAL_AFIO_REMAP_SWJ_DISABLE();//也就是说关闭了SWD③使用STM32CubeMX配置时没有配置SWD2、对应解决办法①排查接线问题②注释掉__HAL_AFIO_REMAP_SWJ_DISABLE();长摁reset键,看是否会出现SWD,如果可以,那么长摁的同时然后点击烧录然后快速松开reset键(可以多试几次),只要成功了,以后就可以直接烧录了③配置SWD...原创 2022-02-18 12:41:29 · 1146 阅读 · 0 评论 -
SD卡之FATFS库移植
方法一:官网库移植1) 官网下载Fatfs库http://elm-chan.org/fsw/ff/00index_e.html2) 将源文件添加到工程(该工程需要实现某存储器的读写等底层接口,比如SD卡或者FLASH)3) 修改FATFS相关函数接口主要包括diskio.c中的:① disk_status()//获取设备状态② disk_initialize()//初始化③ disk_read()//设备读④ disk_write()//设备写⑤ disk_ioctl()//设备属性接口原创 2022-02-18 12:22:51 · 1625 阅读 · 0 评论 -
keil代码排版问题
keil工程代码缩进有的不是按照四个空格缩进,一行一行的Tab键很麻烦,可以设置一下自动排版,以后只要在打开的.c/.h中,点一下“自动排版”,那么整个文件就会自动排好了。方法:1) 首先下载插件Artistic Style (https://sourceforge.net/projects/astyle/)2) 然后将在解压包里的bin/Astyle.exe文件复制到keil安装目录下我的具体是:D:\keil_mdk3) 打开keil,在Tools菜单打开Customize Tools Menu选原创 2022-01-11 10:57:52 · 2261 阅读 · 1 评论 -
Freertos -- 二值信号量-任务与中断同步测试configASSERT(断言)卡死
今天重新用STM32CubeMX生成一个小工程,就简单的对二值信号量–任务与中断同步做一个小测试。原理:1)定时器中断500ms 调用xSemaphoreGiveFromISR函数,Give一次信号量;2)创建一个任务 Take信号量,得到就翻转一次LED,否则死等。逻辑上很清晰,但是烧录测试的时候发现,灯不亮。就去排查原因:进入Debug,单步调试发现函数进入了:信号量释放函数,并卡在断言处了。很快就知道原因了,信号量为0,不是说信号量创建失败了,而是在STM32CubeMX在生成代码时将定原创 2021-09-01 16:28:19 · 1547 阅读 · 2 评论 -
积累找bug的经验能力
先吐槽一下:我真是太菜了项目1:Ardupilot+ECU驱动方法1、利用STM32、keil调试程序,方便快捷,通过Debug 窗口可以清晰地查看传感器的返回数据格式方法2、利用串口打印;之前是先用stm32调通了,搬到apm上的,发现并不能实现,我就开始怀疑apm给的read、write函数接口机制是不是和stm32 串口DMA空闲中断不同,导致丢包之类的问题,就一直尝试不同的波特率,运行频率,然并卵。最后朋友告诉我,在飞控和ECU之间连接USB转TTL,监控一下ECU和飞控是如何“聊天的”,原创 2021-06-18 23:23:57 · 173 阅读 · 0 评论 -
链表,队列和栈的区别
链表,队列和栈都是数据结构的一种。Sartaj Sahni 在他的《数据结构、算法与应用》一书中称:“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”他将数据对象(data object)定义为“一个数据对象是实例或值的集合”。 Ø 链表 ...转载 2021-06-07 22:13:06 · 3660 阅读 · 0 评论 -
STM32学习过程中遇到的问题(持续更新)
1、keil Debug的时候切记把优化等级改为0因为不调为0的话,单步调试的时候会出现迷惑性的现象,箭头表面上会出现不按照我们代码逻辑那样跳转。但是实际上他又是按照我们写的代码逻辑执行的。...原创 2021-06-02 21:29:40 · 1177 阅读 · 3 评论 -
软件模拟SPI接口程序代码(4种模式)
软件模拟SPI接口程序代码(4种模式) SPI协议简介 SPI的通信原理很简单,一般主从方式工作,这种模式通常有一个主设备和一个或多个从设备,通常采用的是4根线,它们是MISO(数据输入,针对主机来说)、MOSI(数据输出,针对主机来说)、SCLK(时钟,主机产生)、CS/SS(片选,一般由主机发送或者直接使能,通常为低电平有效) ●SPI接口介绍 SCK:时钟信...转载 2021-05-20 23:11:10 · 1612 阅读 · 0 评论 -
MDK编译全过程及数据存储
转载于 https://blog.youkuaiyun.com/flyleaf91/article/details/52325556?只用于学习记录,若侵权请告知立删48.1 编译过程 48.1.1 编译过程简介 首先我们简单了解下MDK的编译过程,它与其它编译器的工作过程是类似的,该过程见图 481。 图 481 MDK编译过程 编译过程生成的不同文件将在后面的小节详细说明,此处先抓住主要流程来理解。 (1) &nb转载 2021-04-18 21:25:10 · 3620 阅读 · 0 评论 -
数字地与模拟地的区别——为何要分开
转发于 https://blog.youkuaiyun.com/kevinhg/article/details/12080751 二者本质是一直的,就是数字地和模拟地都是地。要明白为什么要分开,先听一个故事;我们公司的商务楼,2楼是搞模拟的,3楼是搞数字的,整幢楼只有一部电梯,平时人少的时候还好办,上2楼上3楼互不影响,但每天上下班的时候转载 2021-04-16 10:07:11 · 3347 阅读 · 0 评论 -
Linux--字符设备开发之pinctrl、gpio子系统
1、pinctrl2、gpio原创 2020-12-19 13:01:51 · 689 阅读 · 0 评论 -
Linux开发过程中遇到的问题集合 ~持续更新
1、未添加MODULE_LICENSE(“GPL”)/括号中的内容写错原创 2020-12-17 22:49:52 · 264 阅读 · 0 评论 -
RS232(9针)公母头线序规定
1、区分公母头:2、公母头线序1)公头1: DCD //数据载波检测2: RXD //接收3: TXD //发送4: DTR //数据终端准备好5: GND //地线6: DSR //数据准备好7: RTS //请求发送8: CTS //清除发送9: R1 //响铃指示2)母头1: DCD //数据载波检测2: TXD //发送3: RXD //接收4: DTR //数据终端准备好5: GND //地线6: DSR //数据准备好7原创 2020-12-15 16:34:36 · 32095 阅读 · 0 评论