一、搭建STM32开发环境——STM32CubeMX,Keil5
1、stm32CubeMX生成代码
(1)安装stm32CubeM
下载地址STM32CubeMX - STM32Cube initialization code generator - STMicroelectronics
stm32CubeMX的具体安装方法可以参考博客(5条消息) STM32CubeMX 下载及安装教程_Brendon_Tan的博客-CSDN博客_stm32cubemx下载
(2)生成代码
打开stm23CubeMX,点击下载依赖,即“Mange embedded.....” ,并在接下来的窗口选择自己需要多大芯片。
点击Access to....
选择芯片
点击System Core,进入里面的SYS,在debug那里选择Serial Wire
接下来就是配置时钟了,进入上面的rcc,有两个时钟,一个是hse和lse,我们要用是GPIO接口,而这些接口都在APB2里
接下来观察时钟架构,APB2总线的时钟由hse控制,同时在这个界面得把PLLCLK右边选上
所以我们将hse那里设为Crystal/Ceramic Resonator就行了
接下来就是点击相应的引脚设置输出寄存器了,就是output那一项,一共选了三个,是PA7,PB9,PC15
.点击project manager,配置好自己的路径和项目名,然后IDE那项改为MDK-ARM
入code generate界面,选择生成初始化.c/.h文件,后面点击generate code
(2)keil仿真调试生成hex文件
打开在stm32cubeMX中生成的工程将主函数改成如下代码
SystemClock_Config();
MX_GPIO_Init();
while (1)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);
HAL_Delay(500);
二、烧录程序
1、下载FlyMcu.exe
2、烧录程序
烧录程序可参考博客(5条消息) STM32最小核心板F103串口通信USART_vic_to_ry的博客-CSDN博客
三、原理分析
stm32f103c8t5原理图
引脚分析
TX:发送数据输出引脚。
RX:接收数据输入引脚。
SW_RX:数据接收引脚,只用于单线和智能卡模式,属于内部引脚,没有具体外部引
脚。
nRTS:请求以发送(Request To Send),n 表示低电平有效。如果使能 RTS 流控制,当USART 接收器准备好接收新数据时就会将 nRTS 变成低电平;当接收寄存器已满时,nRTS将被设置为高电平。该引脚只适用于硬件流控制。
nCTS:清除以发送(Clear To Send),n表示低电平有效。如果使能 CTS 流控制,发送器
在发送下一帧数据之前会检测 nCTS 引脚,如果为低电平,表示可以发送数据,如果为高
电平则在发送完当前数据帧之后停止发送。该引脚只适用于硬件流控制。
SCLK:发送器时钟输出引脚。这个引脚仅适用于同步模式。
四、展示
在软件哔哩哔哩里打开av号:BV1SF411e7JD
五、参考链接
(5条消息) 搭建STM32开发环境——STM32CubeMX,Keil5_Harriet的博客-CSDN博客