串口选择
示例给出的是串口的,因为今天回老家,带的杜绑线是公对母的,不能接串口1,所以选择串口2,即PA2--TX,PA3--RX。
初始化串口
- 初始化UART2的时钟:__RCC_UART2_CLK_ENABLE();
- 初始化GPIOA外设时钟:RCC_AHBPeriphClk_Enable( RCC_AHB_PERIPH_GPIOA, ENABLE);
- 复用PA2为UART2TX: PA02_AFx_UART2TXD();
- 复用PA3为UART2RX:PA03_AFx_UART2RXD();
- 初始化PA2为高速输出模式:
GPIO_InitStructure.Pins = GPIO_PIN_2; //PA2
GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
- 初始化PA3为上拉输入:
GPIO_InitStructure.Pins = GPIO_PIN_3; //PA3
GPIO_InitStructure.Mode = GPIO_MODE_INPUT_PULLUP;
GPIO_Init(CW_GPIOA, &GPIO_InitStructure);
- 初始化UART2配置为9600波特率:
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_Over = USART_Over_16;
USART_InitStructure.USART_Source = USART_Source_PCLK;
USART_InitStructure.USART_UclkFreq = 64000000;
USART_InitStructure.USART_StartBit = USART_StartBit_FE;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No ;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(CW_UART2, &USART_InitStructure);
- 使能中断输入
//使能UARTx RC中断
USART_ITConfig(CW_UART2, USART_IT_RC, ENABLE);
//优先级,无优先级分组
NVIC_SetPriority(UART2_IRQn, 0);
//UARTx中断使能
NVIC_EnableIRQ(UART2_IRQn);
- 中断接收函数,主要功能为判断接收到的第一位是否为0,第二位是否为1,如果总接收长度为4位,测翻转LED4,具体代码如下:
void UART2_IRQHandler(void)
{
/* USER CODE BEGIN */
unsigned char TxRxBuffer;
if(USART_GetITStatus(CW_UART2, USART_IT_RC) != RESET)
{
USART_ClearITPendingBit(CW_UART2, USART_IT_RC);
TxRxBuffer = USART_ReceiveData_8bit(CW_UART2);
rec[re_count]=TxRxBuffer;
if (re_count == 0&&rec[0]==0x00)
{
rev_start=1;
re_count++;
}
else if(rev_start==1)
{
if(re_count==1&&rec[1]!=0x01)
{
re_count=0;rev_start=0;
}
else if(re_count==4) //计算总个数,0-4
{check_flag=1;re_count=0;rev_start=0;} //如果对,那么将标志位置1,并清除里面的值从新接收
else
re_count++;
}
}
/* USER CODE END */
}
实现效果,下载后,串口接收到0x00 0x01 0x02 0x03 ,HEX发送00 01 02 03 可以实现LED4的翻转:
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
串口
+关注
关注
14文章
1551浏览量
76494 -
uart
+关注
关注
22文章
1235浏览量
101383 -
开发板
+关注
关注
25文章
5046浏览量
97437 -
GPIO
+关注
关注
16文章
1204浏览量
52087 -
CW32
+关注
关注
1文章
203浏览量
636 -
武汉芯源
+关注
关注
1文章
66浏览量
255
发布评论请先 登录
相关推荐
【CW32饭盒派开发板试用体验】+机械臂游戏项目(开源)(1)开箱试验舵机
我很高兴能得到 CW32饭盒派开发板试用体验机会,想利用业余时间,做个机械臂游戏项目,用咱们的这个开发板
发表于 04-28 20:10
【CW32饭盒派开发板试用体验】+机械臂游戏项目(开源)(4)多加点东西
接上三篇,继续本项目开发。【CW32饭盒派开发板试用体验】+机械臂游戏项目(开源)(1)开箱试验
发表于 05-08 18:40
【CW32饭盒派开发板试用体验】+机械臂游戏项目(开源)(5)加红外游戏操控机
接上几篇:
【CW32饭盒派开发板试用体验】+机械臂游戏项目(开源)(1)开箱试验舵机 - 武汉芯源MCU - 电子技术william hill官网
- 广受欢迎的
发表于 05-24 22:27
【CW32饭盒派开发板试用体验】+开箱+软件
感谢 发烧友学院以及武汉芯源半导体有限公司提供产品## 芯源CW32饭盒派开发板。
打开快递封装的外包裹袋,里面有一个塑料盒子。打开后是CW32
发表于 05-29 08:41
【CW32饭盒派开发板试用体验】+初识CW32饭盒派开发板
盼星星,盼月亮,终于收到了CW32饭盒派开发板。回想起那天答复参加活动邮件发出去的那一刻,就在期盼。
以前也了解过CW32单片机,这是一款非
发表于 05-29 15:51
评论