********************
众想STM32 串口通讯 RS232
********************
入门还是靠 众想科技 的STM32 视频。再看了 其他视频之后(质量普遍低,基本没看完),可以更加确认,众想STM32 视频 更适合初学者,但是 开发板 外观看起来 一般。
最近又回头复习了一下 C51,发现同样的外设,达到同样理解程度,用 C51 学习 至少省 一半的精力。 换句话话,学 STM32 同时,同时学习外设, 属于 难难联合。
*********************************
不过, uart 在 C51 通过寄存器操作,而 在 STM32 中通过 库函数 则 好像 更简单。
比如 96 N 8 1 设置,
- 通过函数配置很简单
- USART_InitStructure.USART_BaudRate=9600;
- USART_InitStructure.USART_WordLength=USART_WordLength_8b;
- USART_InitStructure.USART_StopBits=USART_StopBits_1;
- USART_InitStructure.USART_Parity=USART_Parity_No;
- USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
[color=rgb(51, 102, 153) !important]复制代码
核心内容是在 串口中断 中配置
- void USART1_IRQHandler(void)
- {
- if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)
- {
- USART_SendData(USART1,USART_ReceiveData(USART1));
- while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
- }
- }
[color=rgb(51, 102, 153) !important]复制代码
这个例子还是非常 简单 清晰的
- int main(void)
- {
- RCC_Configuration(); //系统时钟初始化
- GPIO_Configuration();//端口初始化
- USART_Configuration();
- NVIC_Configuration();
- while(1);
- }
[color=rgb(51, 102, 153) !important]复制代码
也可以借助 STM32CUBEMX 来辅助生产代码
- void MX_GPIO_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStruct;
- /** USART1 GPIO Configuration
- PA9 ------> USART1_TX
- PA10 ------> USART1_RX
- */
- /*Enable or disable APB2 peripheral clock */
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
- /*Configure GPIO pin : PA */
- GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10;
- GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;
- GPIO_Init(GPIOA, &GPIO_InitStruct);
- }
[color=rgb(51, 102, 153) !important]复制代码
代码没有 设置 输出 和输入 模式,
TX 复用 推挽输出,RX 悬空输入。
- GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//TX
- GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
- GPIO_Init(GPIOA,&GPIO_InitStructure);
- GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//RX
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
- GPIO_Init(GPIOA,&GPIO_InitStructure);
[color=rgb(51, 102, 153) !important]复制代码
*****************************
在 uart 设置上, STM32 相对还是容易的。
|