配置SYS和时钟

使用外部时钟

使用外部时钟,总线时钟为最大

配置串口
串口不同模式
| mode | |
|---|---|
| Asynchronous | 异步通讯 |
| Synchronous | 同步通讯 |
| Single Wire(Half-Duple) | 半双工模式 |
| MultiprocessorCommunication | 多处理器通讯 |
| IrDA | 红外通讯 |
| LIN | 局域互联网 |
| SmartCard | 智能卡模式 |
这里选择异步通信

填写串口信息

打开串口中断

确认串口GPIO

生成工程

Use MicroLIB”这是KEIL自带的一个简易的库
使用printf函数,直接默认定向到串口1

重写串口函数
#include "stdio.h"
/* 重定义C库函数到串口,printf */
int fputc(int ch,FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 1000);
return (ch);
}
int fgetc(FILE *f)
{
int ch;
HAL_UART_Receive(&huart1, (uint8_t *)&ch, 1, 1000);
return ch;
}
void usart1_sendString(uint8_t * str)
{
unsigned int sendIndex = 0;
do{
HAL_UART_Transmit(&huart1, (uint8_t *)(str + sendIndex), 1, 1000);
sendIndex++;
}while(*(str + sendIndex) != '\0');
}
主函数测试
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
while (1)
{
printf("Hello word STM32 \r\n");
HAL_Delay(1000);
int num = 0,index = 0;
scanf("%d",&num);
for(index = 0;index<num;index++){
HAL_Delay(500);
printf("index:%d\r\n",index);
HAL_Delay(500);
}
}
}
STM32配置教程:使用外部时钟与串口功能实现异步通信
本文详细介绍了在STM32平台上如何配置SYS时钟、使用外部时钟,以及设置串口的不同工作模式,如异步通信。还展示了如何重写printf函数和使用HAL_UART_Transmit进行数据传输的示例代码及主函数测试。
1206

被折叠的 条评论
为什么被折叠?



