在线时间352 小时
UID2053419
注册时间2014-11-27
NXP金币0
TA的每日心情 | 衰 2016-10-20 09:45 |
---|
签到天数: 1 天 [LV.1]初来乍到
版主
- 积分
- 2223
- 最后登录
- 2023-11-20
|
本帖最后由 花溪村长 于 2015-11-3 20:32 编辑
程序开发采用库形式,UART和PIT比较简单,就不详细说明了,直接上程序,程序中UART中断接收模式,默认接收数据后再发送到串口,PIT模块设定500ms中断一次,LED闪烁,同时打印信息到串口上
UART初始化:- //UART初始化
- UART_InitTypeDef UART_InitStruct;
- UART_InitStruct.UART_BaudRate = 115200; //波特率
- UART_InitStruct.UART_WordLength = UART_WordLength_8b ; //数据长度
- UART_InitStruct.UART_StopBits = UART_StopBits_1; //停止位
- UART_InitStruct.UART_Parity = UART_Parity_No; //奇偶校验
- UART_InitStruct.UART_Mode = UART_Mode_Rx|UART_Mode_Tx; //使能RX和TX
- UART_InitStruct.UART_PIN = RX_PTB0_TX_PTB1 ; //引脚选择
- UART_Init(&UART_InitStruct); //初始化UART
- UART_ITConfig(UART_IT_RXNE, ENABLE); //接收中断使能
- NVIC_Init(UART0_IRQn,1);
复制代码 PIT初始化:
PIT初始化可选为 PIT模式 PIT_Mode_ms, //ms模式 PIT_Mode_us //us模式
- //PIT初始化
- PIT_InitTypeDef PIT_InitStruct;
- PIT_InitStruct.CHANNELx = PIT_CHANNEL0; //选择通道0
- PIT_InitStruct.PIT_Mode = PIT_Mode_ms; //ms中断
- PIT_InitStruct.Timer = 500; //500ms
- PIT_Init(&PIT_InitStruct); //初始化
- PIT_ITConfig(PIT_CHANNEL0,ENABLE); //PIT中断使能
- PIT_ClearFlag(PIT_CHANNEL0); //清除中断标志
- PIT_Cmd(PIT_CHANNEL0,ENABLE); //PIT使能
- NVIC_Init(PIT_CH0_IRQn,1); //NVIC使能
复制代码 PIT
中断子程序
- /**
- * @brief This function handles PIT0 exception.
- * @param None
- * @retval None
- */
- void PIT_CH0_IRQHandler()
- {
- static u32 i = 0 ;
- PIT_ClearFlag(PIT_CHANNEL0); //清除中断标志
- GPIO_ToggleBits(PTC,PTC1|PTC2);
- i++;
- printf("PIT Interrupt:%d\r\n",i);
- }
复制代码
串口接收的数据如图:
附上源代码:
TRK-KEA8.rar
(119.1 KB, 下载次数: 342)
|
|