单片机
文章平均质量分 65
不纯洁的锌
机械电子 汽车电子 移动机器人 https://github.com/XiaoxingChen
展开
-
STM32 C++ 底层封装的尝试[1]
现在在伊顿公司实习,用的是freescale的mpc563处理器。开发流程大致是:应用层在Matlab建模,然后通过matlab的code generation自动生成代码,得到应用层的*.cpp和*.h文件。然后手打底层代码,同样是*.h和*.cpp文件。然后写Makefile,matlab掉脚本,gmake下调wind river的diab编译器,编译出*.32b文件。就相当于单片机的*.he原创 2015-10-29 23:58:48 · 2895 阅读 · 2 评论 -
stm32增加bootloader后进不了中断
加bootloader前能进,加了后进不了,但是主程序不崩正常跑可能是bootloader里跳转前把中断关掉了。 即在bootloader里这样设置过:__set_PRIMASK(1);则需要在应用层里添加:__set_PRIMASK(0);重新把中断打开加bootloader前能进,加了后程序崩到HardFault里可能这句没加SCB->VTOR = ...原创 2018-03-02 22:06:13 · 3218 阅读 · 0 评论 -
Keil命令行编译工程
背景控制器的板子,有bootloader,有应用层,还有需要适配不同厂家的配置。 因此整个solution可能会由好几个project构成。参考VisualStudio的solution和project的关系。此外,还有许多编译前执行的内容,以及编译后执行的脚本。因此如果能通过命令行来调keil就很有价值。方法keil的官网上对此有介绍 keil命令行接口 归纳一下,一个...原创 2018-03-01 21:42:03 · 9660 阅读 · 1 评论 -
STM32F4 LAN8720以及LWIP的移植调试记录 (3)
LAN8720配置: IP: 192.168.192.30 Gateway: 192.168.192.1检测到高频率的ARP包包的内容在询问192.168.192.1的mac地址,并要求应答者发往192.168.192.30。 可以判断为LAN8720可能要夸网段发包,但是找不到网管。 于是把LAN8720的网关改为192.168.192.15, 即PC机的IP。 然后...原创 2018-03-07 22:44:56 · 6315 阅读 · 1 评论 -
STM32F4 LAN8720以及LWIP的移植调试记录 (2)
背景在硬件工程师完成了PCB和原理图设计后,根据正点原子的教程对例程进行修改,验证了硬件的正确性。 STM32F407和LAN8720调试记录. 正点原子 网络通信实验下一步的工作需要在产品的板子上实现功能。 原产品采用W5500的硬TCP/IP协议方案。 调试路线尝试先从UDP回环开始。约定所有调用接口全部按照 lwip\src\include\lwip\socket...原创 2018-02-26 15:22:54 · 5504 阅读 · 0 评论 -
STM32F407和LAN8720调试记录(1)
LAN8720测试代码的整理1. 在两个工程的基础上修改,分别是正点原子ATK的 “实验55 网络通信实验” 和ST官方的“STSW-STM32070”例程硬件是原子的explorer和SeerF4kernelV2。两个例程的问题在于ATK例程用的外部SRAM,注释掉外部SRAM后跑不起来。而ST官方例程用的芯片是DP83848,需要手动修改为LAN8720A。针对ST的例程,网上有对应的文档:S...原创 2017-12-12 16:15:25 · 15914 阅读 · 5 评论 -
嵌入式控制器分布式控制系统固件更新方式探讨
机器人、AGV等自动化设备,车身有大量嵌入式控制单元,开发及应用过程中有固件更新需求。需要探讨出一套通用的在应用编程模板。其中涉及的通信链路有: 以太网 CAN UART 涉及应用层协议: TCP, UDP, TCP Modbus, CANopen, 485Modbus, 232Modbus以及一些开发者自定义的协议 在应用编程协议统一使用: ST IAP protocol为求通用性,将stI原创 2017-11-20 10:41:23 · 422 阅读 · 1 评论 -
jlink gdb server with arm-none-eabi-gdb
Launch JLinkGDBServer:$ JLinkGDBServer -if SWD -device STM32F103ZE原创 2017-11-07 18:04:09 · 1293 阅读 · 0 评论 -
Use std::functional and std::bind in STM32 project
-I/usr/include/newlib/c++/4.8/arm-none-eabi/armv7e-m-I/usr/include/newlib/c++/4.8原创 2017-09-29 20:24:38 · 358 阅读 · 0 评论 -
cmake arm-none-eabi-gcc for stm32 cpp project
尝试把原有的stm32工程F1canBootloader用cmake来管理,遇到了以下几个坑:1. 报错,undefined reference to `__dso_handle'。CMakeFiles/app.elf.dir/home/chenxx/engineering/stmproj/F1canBootLoader/iap/uartIapDevice.cpp.obj: In fu原创 2017-10-07 16:05:25 · 2653 阅读 · 0 评论 -
在正点原子alientek探索者板子上跑Nuttx
nuttx原创 2017-08-16 00:31:16 · 2334 阅读 · 1 评论 -
Add your own board to Nuttx configuration
Add your own board to Nuttx原创 2017-08-15 23:09:38 · 787 阅读 · 0 评论 -
串口通信的帧同步问题
封装STM32串口的底层时,遇到了串口帧同步的问题。虽然以前也遇到类似场合,写出来的代码基本能够解决问题,但是在逻辑上总是不能彻底的解释一些细节。讲一下当前的需求:由于代码想用在一个简单的PID闭环上,做在线的参数整定。假设当前PID解算周期是1ms,即每1ms,做一次串口的收包,解包,Pid解算,数据采集,然后打包,发包。也就是说是固定步长的解包。原创 2015-10-31 17:32:28 · 4223 阅读 · 0 评论