STM32串口输出乱码的原因-最近学习 STM32 开发,申请了一块免费的开发版,按照书上的内容学习,学到USART,发现 串口输出 始终 乱码 ,妈蛋的,搞不懂为啥,代码啥的都是按照书上来的啊,最后搜索很久,发现是外部时钟频率配置错误导致的,库使用默认8MHz晶震,可以通过宏使用25MHz晶震。
ARM Cortex-M3 MCU的I2C和DMA操作被中断打断的解决方法-在项目开发的过程中,发现程序总是死在判断DMA一次传输是否完成这个标志位上。进一步回退分析,发现是在I2C读的过程中,有使用到DMA去取外部I2C设备的data。
单片机开发时的常遇问题解析-nRF24L01模块(使用Mirf库时)的自动应答问题:项目里使用一个nRF24L01(服务端)接收多个nRF24L01(客户端)的消息,发现客户端之间互相收到本应发到服务端的消息,经过多次试验,发现应该与nRF24L01的自动应答机制有关。在Mirf.cpp的setTADDR方法里可以看到,目标地址被同时写到RX_ADDR_P0和TX_ADDR这两个寄存器里,前者是接收自动应答使用的(一个nRF24L01可以有6个接收地址同时工作),导致peer发到服务端的消息也被当作自动应答了。
采用复杂可编程逻辑器件实现GPIB接口的功能设计-综观现今市场上的测试仪器,不难发现 GPIB总线有重要的作用,在研制台式测试仪器的时候,客户几乎均要求具备 GPIB接口。可是在实际研发过程中,却发现 GPIB控制芯片很难购买,而且价格昂贵。而且作为测试仪器具备 GPIB的接口,一般只需要具有听、讲、串查功能,而不需要控、并查功能,这样又会造成资源与功能的浪费。所以我们尝试用 CPLD来实现GPIB接口的听、讲、串查功能,不仅可拥有自主知识产权,节省了产品的成本,而且具有很大的灵活性。