引脚第二功能的配置,我推荐通过CubeMx配置后直接生成 Init 代码。
CubeMx配置模块的方式分为两步:
- 勾选所需配置的模块
- 在System-->GPIO选单的子选项卡对引脚模式按需要再次配置(受限,可参考Reference Manual)
代码例:
1.启用USART1;引脚配置:
附件:F103xxxx时间树
usart使用旁路时钟APH2
在usart.c中:
void MX_USART1_UART_Init(void)
{
LL_USART_InitTypeDef USART_InitStruct = {0};
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
/* Peripheral clock enable */
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART1);
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);
/**USART1 GPIO Configuration
PA9 ------ > USART1_TX
PA10 ------ > USART1_RX
*/
GPIO_InitStruct.Pin = LL_GPIO_PIN_9;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; //使能第二功能
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = LL_GPIO_PIN_10;
GPIO_InitStruct.Mode = LL_GPIO_MODE_FLOATING; //no pull-up und pull-down
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*配置并启用USART*/
USART_InitStruct.BaudRate = 115200;
USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B;
USART_InitStruct.StopBits = LL_USART_STOPBITS_1;
USART_InitStruct.Parity = LL_USART_PARITY_NONE;
USART_InitStruct.TransferDirection = LL_USART_DIRECTION_TX_RX;
USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE;
USART_InitStruct.OverSampling = LL_USART_OVERSAMPLING_16;
LL_USART_Init(USART1, &USART_InitStruct);
LL_USART_ConfigAsyncMode(USART1);
LL_USART_Enable(USART1);
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
STM32
+关注
关注
2270文章
10910浏览量
356625 -
STM32F103
+关注
关注
33文章
477浏览量
63712 -
GPIO
+关注
关注
16文章
1213浏览量
52184 -
USART串口
+关注
关注
0文章
32浏览量
6870 -
CubeMx
+关注
关注
0文章
31浏览量
1351
发布评论请先 登录
相关推荐
STM32标准库、HAL库和LL库介绍
我们在进行STM32开发的时候,使用寄存器进行开发的终究是少数,大多数人还是习惯用库函数进行开发。到目前为止,有标准外设库、HAL库、LL库
发表于 06-21 15:13
•1.4w次阅读
【NUCLEO-L476RG LL库开发】STM32【LL库】开发使用指南
下载地址:http://pan.baidu.com/s/1c0wjL5m 一楼二楼是具体使用方法。 已完,上传文档和工程模板: STM32 LL库使用指南.pdf
发表于 07-02 03:03
STM32四种库对比:寄存器、标准外设库、HAL、LL
1.我是选择寄存器开发STM32,还是标准外设库呢?
2.你有STM32L0标准外设库吗?
3.HAL库和
发表于 03-05 06:17
•50次下载
STM32G031K LL库使用 - GPIO
最近使用STm32G031K6做一款IOT产品,选择了用最新LL库进行开发,因为知其那对LL库了解很少,所以开始的时候踩了很多坑,为防以后继
发表于 12-02 17:06
•17次下载
STM32CubeMX 实战教程:看门狗实验(LL 库)
【LL 库】详细讲述了 STM32CubeMX IWDG 和 WWDG 配置方法及使用方法,内附图文及代码。
发表于 12-05 14:21
•21次下载
stm32 LL库常见模块配置
void input_config(void){ LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock
发表于 12-27 19:30
•8次下载
LL库串口+DMA
由于工作中测试发现串口传输数据延时有点大,传输35个字节,115200,理论值应该在3ms左右,然而实际测试却有40ms,所以首先想到会不会是hal库执行效率低得原因,所以采用LL库,但是LL
发表于 12-27 19:31
•19次下载
STM32G031K LL库的使用 - IIC
说明:驱动基于STm32G031K6,其他型号需自行做改动。注:因为之前项目暂未用到LL库的IIC,所以此驱动未经过实机验证。欢迎反馈使用中的问题。IIC的初始化: CubeMX生成uint8_t
发表于 12-28 19:00
•12次下载
STM32Cbue LL库中巧妙运用“静态内联”
STM32的标准外设库、HAL、LL软件库,都有很多巧妙之处值得大家借鉴。 今天讲讲STM32Cbue
发表于 08-14 14:30
•1172次阅读
评论