意法半导体MCU是全球领先的半导体供应商,自成立以来已知足了市场上多元化的需求,提供了各行业领域范围半导体产品及解决方案.为了保持其技术优点,意法半导体坚决地致力于创新,约有7400人从事研发和产品设计工做,并在2018年将其收入的15%用于研发。STM32MCU被普遍应用在各类丰富的不一样行业当中.为此本篇文章将介绍有关STM32底层配置的相关技术.安全
本文经过,介绍STM32主要的底层配置,经过关键步骤的程序源代码的介绍,阐述实现数据传输的细节以及注意事项。该方法对其余项目或芯片有必定的实现价值和参考价值,且简单可靠,具备广泛性和通用性。ide
一、STM32底层配置
为了实现STM32单片机与SIM900A模块之间的数据命令的传输,本文以串口为例,先搭建开发平台,在工程中加入相应的库函数以及配置文件,而后配置时钟以及串口相应的输入输出GPIO接口。在配置的同时,须要针对自身的原理图进行编写,才能保证配置正确无误。这样基本的开发平台就搭建起来了。函数
1.一、串口配置
在开发平台搭建起来以后,就能够对串口进行配置了。配置速率为115200b/s,字长为8bit,1bit中止位,串口模式为输入与输出模式,最后初始化相对应的串口。初始化串口以后,打开串口的中断响应函数,即USART_ITConfig(USART2,USART_IT_RXNE,ENABLE)(以串口2为例),而后使能相对应的串口,这样串口函数就基本配置完成了。须要注意一点,有些程序可能在传输的时候出现首位丢失。这个问题涉及到USART的机制。硬件复位以后,USART的状态位是置位的(置1,表示已经发送完毕),而此时数据能够进行正常发送。当一帧数据发送后,由硬件将该位置位。而清除TC位(置0)是由软件来完成的,经过先读USART_SR,再写USART_DR将该位清除。可是程序在发送第一帧数据的时候,并无进行读USART_SR,而是直接进行写USART_DR,所以TC标志位仍是置1,并无清除。当发送第一帧数据以后,用USART_GetFlagStatus()检测状态返回的是已经发送完毕,程序就会立刻发送下一帧数据,所以第一帧数据就会被第二帧数据覆盖了,这样就看不到首位数据。根据这种状况来讲能够在每次传输以前或以后清除传输完成标志位,即USART_ClearFlag(USART2,USART_FLAG_TC)。性能
1.二、中断配置
配置完串口以后,将对NVIC进行配置。首次配置中断分组,而后选择串口的中断,即NVIC_InitStructure.NVIC_IRQChannel=USART2_IRQn(以所使用固件库的定义为主)。设计
再设置抢占式中断优先级和响应式中断优先级,而后使能中断和初始化。以上的配置必须结合自身的状况,设计出最优的中断分组和优先级,以保证程序响应中断的速度。中断后所作的内容在stm32f10x_it.c文件里配置。接口
MCU应用极其普遍,国内本土为了避免再依附进口芯片而投身研发国内芯片。目前国内有着几家不错的厂商,已为市场提供上百种的MCU产品.例如灵动微电子,旗下产品MM32F系列可替换兼容STM32F系列.开发
关于上海灵动微电子产品
灵动微电子是国内专一于MCU产品与应用方案的领先供应商,自2011年3月成立至今,上海灵动微电子已经成功完成数百余个MCU产品的设计及推广,灵动微目前已批量供货的基于内核M0及Cortex-M3 内核的MCU产品包括:通用高性能市场的MM32F系列,超低功耗及安全应用的MM32L系列,具备多种无线链接功能的MM32W系列,电机及电源专用的MM32SPIN系列,以及OTP型的MM32P系列等,以知足客户及市场多领域、多层次的丰富应用场景需求。it