第一次接触到32位的MCU与之前所学的51单片机和430单片机都是有所不同的,STM32是用库函数来写程序的这样一来不管是从代码的编写和移植都会方便很多。以下是今天所学的东西:
1.新建工程
个人觉得不用去新建一个工程再一步一步的添加各种文件夹和文件,完全可以去官网、论坛或贴吧等地方下载模板,其中大部分文件都可以直接复制过来只需要把你要编程的文件建好就OK,接着只需要把.c .h文件添加进去就可以使用了。(最好把你要写的各种类型的.c.h文件都放在一个文件夹里g个人习惯放在PROJECT文件夹里)
工程里添加文件
点击魔术棒,在C/C++的窗口添加所需要用的文件夹(.c.h文件)
点击魔术棒旁边的三色堆添加.c文件
这样工程就建好了。
2.点亮LED灯
STM32的学习需要有两个宝:《STM32参考手册》和《STM32固件库使用手册》这两个文档对32的学习是很有帮助的,有很多途径可以下载。
想要点亮LED灯(所用芯片为STM32F103RC的小黑板)就要了解GPIO的功能和各种模式关于GPIO的配置有八种:(1)GPIO_Mode_AIN 模拟输入
(2)GPIO_Mode_IN_FLOATING 浮空输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_IPU 上拉输入
(5)GPIO_Mode_Out_OD 开漏输出
(6)GPIO_Mode_Out_PP 推挽输出
(7)GPIO_Mode_AF_OD 复用开漏输出
(8)GPIO_Mode_AF_PP 复用推挽输出
GPIO_Speed_10MHz 最高输出速率10MHz
GPIO_Speed_2MHz 最高输出速率2MHz
GPIO_Speed_50MHz 最高输出速率50MHz
其中最常用的是推挽输出,推挽输出:可以输出高,低电平,连接数字器件。推挽输出与开漏输出是有区别的。开漏输出:输出端相当于三极管的集电极.
要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma)。这里简单说:开漏是0的时候接GND 1的时候浮空 推挽是0的时候接GND 1的时候接VCC
在配置IO口时必须要使IO口的时钟使能RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD, ENABLE);
以下为点亮D0的代码:
//FUNCTION:IO初始化
//DATA:20180913
void GPIo_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//定义结构体变量
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);//IO口时钟使能
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_2;//选用管脚
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;//设置引脚输出速率为 2M
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//IO推挽输出
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化外设寄存器
GPIO_ResetBits(GPIOA, GPIO_Pin_8);//输出0
//GPIO_Init(GPIOD, &GPIO_InitStructure);
//GPIO_ResetBits(GPIOD, GPIO_Pin_2);
}
下载进单片机就可以点亮了。
总结:其实32也不是很难学,要掌握方法才能事半功倍。在这里有两个问题要搞懂:
1.开漏输出和推挽输出的理解:
开漏是0的时候接GND 1的时候浮空 推挽是0的时候接GND 1的时候接VCC
2.对于引脚的速率设置问题:
2.1对于串口,假如最大波特率只需115.2k,那么用2M的GPIO的引脚速度就够了,既省电也噪声小。
2.2 对于I2C接口,假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引脚速度或许不够,这时可以选用10M的GPIO引脚速度。
2.3 对于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引脚速度显然不够了,
需要选用50M的GPIO的引脚速度。
3.编译过程中出现的警告
主函数大括号前后要空一行
.h文件定义时#endif也要前后空一行
上一篇:STM32学习之旅⑤ SPI控制TFT,从底层到顶层的设计
下一篇:STM32学习第二课——(操作)按键控制LED灯
推荐阅读最新更新时间:2024-11-11 12:02
设计资源 培训 开发板 精华推荐
- KT研发新型定位信息系统 即使GPS性能下降仍为自动驾驶汽车提供精确定位
- Cepton发布最新激光雷达传感器Vista-x120 适用于ADAS和自动应用
- 豪威科技展示汽车图像传感器融合技术 能在低光照条件下实现高质量成像
- 安森美半导体在布鲁塞尔AutoSens展示与Ambarella和Eyeris合作推出的全集成车舱内监控系统
- 舍弗勒展示用于自动驾驶的数字化控制单元
- WAIE丨软银符裔:人工智能实际是机器人的大脑
- WAIE丨AI机器人关键技术对人类有重大意义
- WAIE特色活动智伴小创客大获热捧
- 2019工博会|仙知机器人强势升级的SRC核心控制器震撼发布
- 法国财政部长视察意法半导体新加坡生产线