单片机开发
文章平均质量分 66
csaaa2005
这个作者很懒,什么都没留下…
展开
-
使用COM0COM/COM2TCP实现TCP转串口(Win10)
实现TCP转串口(免费)原创 2022-02-26 13:38:56 · 10581 阅读 · 8 评论 -
也谈STM32使用DMA+串口获取不定长数据
最近的一个STM单片机开发需要连接一个模块,是串口通信。STM32单片机是典型的F103Cx,在本认为是个简单的操作,没想到搞了2天。网上有很多帖子包括各种已有的例程,使用RXNE中断接收的我就不说了,负荷较大的单片机不建议采用。对于DMA的使用,大部分文章都采用了了DMA+串口空闲IDLE标志,获取不定长数据,通常的做法就是:1.配置DMA,使用单次模式2.配置串口,中断标志IDLE,3在串口中断中收取数据,重置DMA缓冲实际使用时发现:串口数据吐的并不流畅,IDLE中断频繁产生,原创 2021-10-17 12:39:10 · 889 阅读 · 0 评论 -
STM32在休眠模式(Stop/Standby)模式下的关闭看门狗问题的解决
长期以来一直都认为Stm32启用了IWDG看门狗以后,就不能再使用休眠进入低功耗模式。由于看门狗启动后就不能停止,给很多人带来了困扰。还有很多人放弃了使用看门狗,从而给产品带来一定的不确定性。其实有一个简单的方法可以实现在有看门狗的情况下可靠休眠。我起名字为“两步法”。顾名思义:第一步:在flash或任何可以保存的位置上,写入一个标识,比如1;然后执行单片机重启,比如NVIC_SystemReset()第二步:重启后的main入口中,在启用看门狗之前,先检测上述标识,如果是1,先清掉这个1,改为原创 2021-07-29 19:57:12 · 10034 阅读 · 6 评论 -
在STM8(STVP编译环境下)中使用位变量
不多解释了。直接看代码:有时内存不够用,对于只有0/1两种状态的变量,可以使用1个字节的8个位拆分使用。这样1个字节就可以控制8种状态,用&,|也可以比较,但是有更好用的方法。位变量的使用typedef union{unsigned char byte;struct{ unsigned char bit0:1; unsigned char bit1:1; unsigned char bit2:1;原创 2020-11-21 17:03:52 · 422 阅读 · 0 评论 -
STM32F401的RCC时钟配置
需要使用STM32F401的大内存特性,买了1批STM32F401CCU6. QFN48封装的。随便翻了一下PDF,第一感觉和F103的48脚封装差不太多,于是将F103的板子改了个QFN48的封装就打样了。。。收到板子后,直接焊上F401,我用的是8M晶振,调试,发现频率上不去。最高能稳定在60M左右,在64M偶尔能工作。在main.c中的RCC配置:(因为SystemInit的配置...原创 2019-08-03 14:25:38 · 5113 阅读 · 1 评论 -
STM32F4关于DMA传输向GPIO口的开发
本文章是经历了大量时间,试验,阅读文档,上网搜索无果,再读文档。最后,睡觉时做了一个梦,在梦中,对文档从头到尾再过了一遍,第二天早上醒来,按照梦中的指示,做了些许修改,一次出结果的。希望此文能够帮助到国内还在此问题上困扰的人们。说到STM32的DMA,其实大家都已经很熟悉了。DMA的例子网上也是到处都有。在F1的开发中,DMA需要设置的就是这些内容了,理解上很容易。 主要就是:1.设置...原创 2019-08-05 11:16:04 · 4432 阅读 · 9 评论