第六章STM32平台机器人实战;
6.1STM32基础简介;
STM32是ARM?Cortex?内核单片机和微处理器市场及技术方面的领先者,目前STM32提供17大产品线(F0、G0、F1、F2、F3、G4、F4、F7、H7、MP1、L0、L1、L4、L4+、L5、WB、WL),超过1000个型号。STM32F1属于Cortex-M系列中的Cortex-M3内核,采用ARMv7-M架构。
STM32的产品定位及命名规则分别如图6.1和图6.2所示。;;;
6.1.2STM32资源与应用
1)?CPU芯片资源
关于CPU芯片内部资源,我们以STM32F103系列器件为例介绍。STM32F103Rx、STM32F103Vx和STM32F103Zx器件功能和配置如表6.1所示。;;
2)?STM32开发板资源
ALIENTEK战舰STM32开发板(广州市星翼电子科技有限公司(正点原子))的资源图如图6.3所示。;;
ALIENTEK战舰STM32开发板板载资源有:
?CPU:STM32F103ZET6,LQFP144;FLASH:512?KB;SRAM:64?KB。
?外扩SRAM:IS62WV51216,1?MB。
?外扩SPIFLASH:W25Q64,8?MB。
?1个电源指示灯(蓝色)。
?2个状态指示灯(DS0:红色,DS1:绿色)。
?1个红外接收头,并配备一款小巧的红外遥控器;1个EEPROM芯片(24C02),其容量为256B。
?1个重力加速度传感器芯片(ADXL345)。;
?1个高性能音频编解码芯片(VS1053)。
?1个FM立体声收发芯片(RDA5820)。
?1个2.4?GB无线模块接口(NRF24L01)。
?1路CAN接口,采用TJA1050芯片。
?1路485接口,采用SP3485芯片。
?1路RS232接口,采用SP3232芯片。
?1个PS/2接口,可外接鼠标、键盘。
?1个游戏手柄接口,可以直接插FC(红白机)游戏手柄。
?1路数字温湿度传感器接口,支持DS18B20/DHT11等。
?;
?1个标准的2.4/2.8/3.5英寸(1英寸=2.54厘米)LCD接口,支持触摸屏。
?1个摄像头模块接口。
?2个OLED模块接口。
?1个USB串口,可用于程序下载和代码调试(USMART调试)。
?1个USBSLAVE接口,用于USB通信。
?1个有源蜂鸣器。
?1个FM收发天线接口,并配天线。
?1个RS232/RS485选择接口。
?;
1个CAN/USB选择接口。
1个串口选择接口。
1个SD卡接口(在板子背面,支持SPI/SDIO)。
?1个SD卡/网络模块选择接口。
?1个标准的JTAG/SWD调试下载口。
?1个VS1053的IIS输出接口。
?1个MIC/LINEIN选择接口。
?1个录音头(MIC/咪头)。
?1路立体声音频输出接口。
?1路立体声录音输入接口。;
?1组多功能端口(DAC/ADC/PWMDAC/AUDIOIN/TPAD)。
?1组5V电源供应/接入口。
?1组3.3V电源供应/接入口。
?1个参考电压设置接口。
?1个直流电源输入接口(输入电压范围为6~16?V)。
?1个启动模式选择配置接口。
?1个RTC后备电池座,并带电池。
?1个复位按钮,可用于复位MCU和LCD。;
?4个功能按钮,其中WK_UP兼具唤醒功能。
?1个电容触摸按键。
?1个电源开关,控制整个板的电源。
?独创的一键下载功能以及除晶振占用的IO口外,其余所有IO口全部引出。;
6.2STM32开发基础知识;;
1)?设置某几个位的值
不改变其他位的值的状况下,对某几个位进行设置。这个场景在单片机开发中经常使用,其方法就是先对需要设置的位用操作符进行清零操作,然后用?|?操作符进行设置。比如我们要改变GPIOA的状态,可以先对寄存器的值进行清零操作:
GPIOA-CRL=0XFFFFFF0F;//将第4~7位清0
然后再与需要设置的值进行|或运算:
GPIOA-CRL?|?=0 //设置相应位的值,不改变其他位的值;
2)?移位操作提高代码的可读性
移位操作在单