【MCU实战经验】+STM32F051嵌入式开发的利器
个人在一些产品的开发项目中应用STM32F0的经验总结:
STM32F0芯片的主要特点与优势:
1.有多通道DMA,提高了实时数据传输的实时效率,减少了CPU的开销.
2.有多个中断源,方便多任务切换.
3.支持触摸按键功能.特有的外设.
4.Flash可以模拟EEPROM,存储一些参数.
5.RTC可以用于一些事件的时间记录.若有电池供电,可以断掉不掉失的后备SRAM
6.多达16通道的ADC,1MS转换速度,方便一些常用的电压,电流等模拟量的测量.
7.............
1. 按键:
STM32F0在按键功能上的优势:
A. 可以IO中断,或是定时扫描,
B. 可以内部上拉省电阻,省PCB,省焊接工序.
C.支持触摸按键功能.特有的外设.
应用情况:
A. 一对一: 如果芯片上剩余的IO口比较多,可以直接一个按键对应一个IO端口.STM32F0可以设置上拉,可以节省一个电阻,省出PCB 板的面积.
B. 一对多: 模拟法: 如果芯片上剩余的IO口比较少,可以使用STM32F0的一个ADC模拟端口,通过检测不同按键的对应电阻值不同 实现.
C. 一对多: 扫描法: 采用辅助芯片,比如74HC系列的74HC164的,将按键扫描的并行输入转成串行数据输出.
D.触摸按键功能: 电容检测方式的,电容值转成频率. 优势,没有机械损耗,使用寿命长,无声音干扰.
2.显示:
LED :
A. 定时器循环扫描: 只段选采用锁存器共享使用,位选用IO口选中来分时复用段选,可以采用串行转并行,例如74HC164等,一个时钟线,一个数据线,将串行数据转并行的8位来控制8位选,段选选中不同的段,这样分时复 用.
优点: 节省器件芯片,节省IO端口.
缺点: 对CPU的开销稍高了些,但是在一般应用任务较少时,可以采用此法.
B. 采用多锁存器: 采用多锁存器,段选与位选分别采用不同的74HC595.这样只发送一次数据即可.
优点: 节省了CPU开销.
LCD :
A. 并行方式: 采用并行IO 8位或是16位,来传送数据.
优点: 节省了CPU开销.减少了耗用的时间.
缺点: 浪费了IO端口.
B. 串行方式: 一个时钟线,一个数据线,来代替8位或是16位并行的数据线.
优点: 芯片,节省IO端口.
缺点: 对CPU的开销稍高了些,但是在一般应用任务较少时,可以采用此法.
优化显示的技巧:
可以采用SPI的FIFO中断或是DMA或是定时器中断来发送数据,来提高系统资源的利用率,提高实时性.
3.模拟量测量:
STM32F0在模拟量测量功能上的优势:
A. 多达16通道 的1MPS的转换速度.一般应用足够了.
B. 多个触发源,支持IO,定时器等方式.
C. 有多种转换后处理数据的中断方式,非常灵活.
D. 支持DMA,提高了效率.
E. ADC的时钟源可以多种方式输入,非常灵活,并且可以灵活设置采样时间以适应不同的外部电路的阻抗.
应用情况:
A. ADC多通道定时采样
B. ADC单通道定时采样
C. ADC单通道随机采样
ADC模拟模块使用注意事项:
A. 采样保持周期要根据实际情况设置,以适用不同的阻抗电路.
B. DMA使能与ADC使能的先后,会导致ADC转换通道顺序不同,要特别注意!!
C. 输入信号的电压范围为0-3.3V(VDD)之间,设计时最好加上下限幅保护功能电路硬件.
4.通讯: UART.可采用485方式,或是Uart转Can方式.主要是工业上要求抗干扰要强.并且要在电气上进行隔离.
5.存储: Flash模拟EEPROM或是IIC SPI外扩EEPROM或是FRAM.
注意点:如果用内部FLash模拟EEPROM,要注意一些关键程序的执行时间,因为FLash擦除时间约20mS,其他非程序段的执行会受到影响的.
6.RTC: 内部时钟或是外部时钟芯片.
内部的RTC的精度取决于所用的晶振,一般外部晶振的精度都不高.如果要求比较高,请使用外部RTC芯片(自带温度补偿晶振的RTC芯片).
7.看门狗.
项目完成了,要开启内部的开门狗,开门狗所有的时钟要与主系统所有的时钟源不同,可以采用内部的32K的晶振. |