FCM32F103CBT6软硬件通用STM32F103CBT6

本文详细介绍了FCM32F103CBT6单片机,它搭载72/96 MHz的ARM Cortex-M4 RISC核,内置高速存储和丰富的外设接口,如I2C、SPI/I2S、USART、USB全速设备等。单片机能在1.8V至5.5V电源范围内工作,并具备多种低功耗模式,适用于各种嵌入式应用。
摘要由CSDN通过智能技术生成

FCM32x103 单片机包含可以工作在 72/96 MHz 的 32 位高性能 ARM Cortex-M4 RISC 核,高速内嵌

存储(最多 128 Kbytes FLASH 和 32 Kbytes SRAM),丰富的高性能外设和 I/O。所有型号提供标准

通信接口(I2C、SPI/I2S、USART)、USB 全速设备、2 个 12-bit ADC、3 个通用 16-bit 定时器、1 个

16-bit 先进控制 PWM 定时器。


FCM32x103 单片机可以在 1.8~5.5V 电源范围、-40 至 125C 温度范围内工作。综合的节电模式适用

于低功耗应用。


FCM32x103 单片机包含多种不同硬封装,从 48 至 100 PIN。根据封装的不同,包含不同的外设。

 ARM® 32 位 Cortex-M4 CPU,最高频率 72/96 MHz

 存储

 64/128 KB FLASH 存储器

 FLASH 接口带 FLASH Turbo 模块,大幅提高程序从 FLASH 运行时的性能(仅 H 系列)

 FLASH 工作速度为 32MHz,可按此设置等待周期(仅 H 系列)

 20/32 KB SRAM

 CRC 计算单元

 复位和电源管理

 数字和 I/O 供电:VDD = 1.8 – 5.5V

 模拟供电:VDDA = 1.8 – 5.5V

 上电/掉电(

POR/PDR)复位

 可编程电压检测(PVD)

 低功耗模式:睡眠

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用库函数控制超声波模块的代码,适用于STM32F103RCT6: ```c #include "stm32f10x.h" #include "delay.h" #include "lcd.h" #include "usart.h" #define Trig GPIO_Pin_7 #define Echo GPIO_Pin_6 void GPIO_Configuration(void); void TIM_Configuration(void); void NVIC_Configuration(void); int main(void) { float distance; char buffer[16]; GPIO_Configuration(); TIM_Configuration(); NVIC_Configuration(); USART_Configuration(); LCD_Configuration(); while(1) { GPIO_SetBits(GPIOB, Trig); delay_us(10); GPIO_ResetBits(GPIOB, Trig); while(GPIO_ReadInputDataBit(GPIOB, Echo) == RESET); TIM_Cmd(TIM2, ENABLE); while(GPIO_ReadInputDataBit(GPIOB, Echo) == SET); TIM_Cmd(TIM2, DISABLE); distance = (float)TIM_GetCounter(TIM2) / 58.0; sprintf(buffer, "Distance:%.2fcm", distance); USART_SendString(buffer); LCD_Clear(); LCD_DisplayStringLine(Line1, buffer); } } void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = Trig; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = Echo; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; GPIO_Init(GPIOB, &GPIO_InitStructure); } void TIM_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_TimeBaseStructure.TIM_Period = 65535; TIM_TimeBaseStructure.TIM_Prescaler = 71; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); } void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); } void TIM2_IRQHandler(void) { if(TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM2, TIM_IT_Update); } } ``` 代码中使用了STM32F10x标准库,并且需要提前配置好LCD和USART。其中Trig和Echo分别对应超声波模块的Trig和Echo引脚,TIM2用于计时,计算出超声波返回的时间,进而计算出距离。在主函数中,不断获取距离并通过USART发送出去,同时在LCD上显示。注意,本代码中距离单位为厘米。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值