标题:
串口屏与stm32的通信(中断模式),求助
[打印本页]
作者:
51_users
时间:
2020-11-24 00:09
标题:
串口屏与stm32的通信(中断模式),求助
本帖最后由 51_users 于 2020-11-24 00:35 编辑
串口屏向单片机发送字符1,单片机接收到数据后PA9翻转。接收缓存长度该设置为多少?如何判断接受的字符是不是1呢?哪里需要改进或不对的地方,请帮指出来,谢谢。
/ *用户代码开头标头* /
/ **
******************************************** ******************************************
* @file:main.c
* @brief:Main程序主体
**************************************************** ******************************
* *注意
*
* <h2> <center>©版权所有(c)2020 STMicroelectronics。
*保留所有权利。</ center> </ h2>
*
*该软件组件由ST根据BSD 3-条款许可进行许可,
即“许可”;除非符合
*许可证,否则您不得使用此文件。您可以在以下位置获得许可副本:
* opensource.org/licenses/BSD-3-Clause
*
************************************* **********************************************
* /
/ *用户代码结尾标题* //
/包括---------------------------------------------- -------------------- * /
#include“ main.h”
#include“ usart.h”
#include“ gpio.h”
/ *私有包含--- -------------------------------------------------- ----- * /
/ *用户代码开始包括* /
/ *用户代码结束包括* /
/ *私有typedef ----------------------- ------------------------------------ * /
/ *用户代码开始PTD * /
/ *用户代码结束PTD * /
/ *私人定义---------------------------------------------- -------------- * /
/ *用户代码开始PD * /
/ *用户代码结束PD * /
/ *私有宏-------------- ----------------------------------------------- * /
/ *用户代码开始PM * /
/ *用户代码结束PM * /
/ *私有变量------------------------------- -------------------------- * /
/ *用户代码开始PV * /
uint8_t Rxbuf [8];
/ *用户代码结尾PV * /
/ *私有函数原型------------------------------------- ---------- * /
void SystemClock_Config(void);
/ *用户代码开始PFP * /
/ *用户代码结束PFP * /
/ *专用用户代码----------------------------- ---------------------------- * /
/ *用户代码开始0 * /
/ *用户代码结束0 * /
/ **
* @brief应用程序入口点。
* @retval int
* /
int main(void)
{
/ *用户代码开始1 * /
/ *用户代码结束1 * /
/ * MCU配置------------------ -------------------------------------- * /
/ *重置所有外设,初始化闪存界面和Systick。* /
HAL_Init();
/ *用户代码开始Init * /
/ *用户代码结束Init * /
/ *配置系统时钟* /
SystemClock_Config();
/ *用户代码开始SysInit * /
/ *用户代码结束SysInit * /
/ *初始化所有已配置的外围设备* /
MX_GPIO_Init();
MX_USART2_UART_Init();
/ *用户代码开始2 * /
HAL_UART_Receive_IT(&huart2,Rxbuf,sizeof(Rxbuf));
/ *用户代码结尾2 * /
/ *无限循环* /
/ *用户代码开始时* /
而(1)
{
/ *用户代码结束时* /
/ *用户代码开始3 * /
}
/ *用户代码结束3 * /
}
/ **
* @简要系统时钟配置
* @retval无
* /
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
/ **配置主内部稳压器输出电压
* /
__HAL_RCC_PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/ **根据
RCC_OscInitTypeDef结构中的指定参数*初始化RCC振荡器。
* /
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 8;
RCC_OscInitStruct.PLL.PLLN = 336;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 4;
如果(HAL_RCC_OscConfig(&RCC_OscInitStruct)!= HAL_OK)
{
Error_Handler();
}
/ **初始化CPU,AHB和APB总线时钟
* /
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
如果(HAL_RCC_ClockConfig(&RCC_ClkInitStruct,FLASH_LATENCY_5)!= HAL_OK)
{
Error_Handler();
}
}
/ *用户代码开始4 * /
void HAL_UART_RxcpltCallback(UART_HandleTypeDef * UartHandle)
{
if(UartHandle-> Instance == USART2)
{
HAL_UART_Receive_IT(&huart2,Rxbuf,sizeof(Rxbuf));
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_9);
HAL_Delay(500);
}
}
/ *用户代码 结尾4 * /
/ **
* @brief发生错误时执行此功能。
* @retval无
* /
void Error_Handler(void)
{
/ *用户代码开始Error_Handler_Debug * /
/ *用户可以添加自己的实现以报告HAL错误返回状态* /
/ *用户代码结束Error_Handler_Debug * /
}
#ifdef USE_FULL_ASSERT
/ **
* @brief报告
发生assert_param错误的源文件的名称和源行号*。
* @param文件:指向源文件名的指针
* @param行:assert_param错误行源编号
* @retval无
* /
void assert_failed(uint8_t * file,uint32_t行)
{
/ *用户代码开头6 * /
/ *用户可以添加他自己的实现以报告文件名和行号,
tex:printf(“错误的参数值:%d \ r \ n行上的文件%s”,文件行)* /
/ *用户代码结尾6 * /
}
#endif / * USE_FULL_ASSERT * /
/ ************************(C)版权STMicroelectronics *****文件结尾**** /
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1