|
因为UART1的管脚被占用了,所以使用UART2管脚,芯片是STM32103FRBT6,使用PA2和PA3作为UART2的TX,RX。
定义defined(STM32F10X_MD)
修改rtconfig.h
/* SECTION: Device System */
/* Using Device System */
#define RT_USING_DEVICE
#define RT_USING_UART2
修改uart.c
#if defined(STM32F10X_LD) || defined(STM32F10X_CL)
#define UART2_GPIO_TX GPIO_Pin_5
#define UART2_GPIO_RX GPIO_Pin_6
#define UART2_GPIO GPIOD
#define RCC_APBPeriph_UART2 RCC_APB1Periph_USART2
#else /* for STM32F10X_HD */
/* USART2_REMAP = 0 */
#define UART2_GPIO_TX GPIO_Pin_2
#define UART2_GPIO_RX GPIO_Pin_3
#define UART2_GPIO GPIOA
#define RCC_APBPeriph_UART2 RCC_APB1Periph_USART2
#define UART2_TX_DMA DMA1_Channel7
#define UART2_RX_DMA DMA1_Channel6
#endif
#ifdef RT_USING_UART2
#if (defined(STM32F10X_LD) || defined(STM32F10X_CL))
/* Enable AFIO and GPIOD clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOD, ENABLE);
/* Enable the USART2 Pins Software Remapping */
GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
#else
/* Enable AFIO and GPIOA clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA, ENABLE);
#endif
仿真时怎么会进入
OTG_FS_IRQHandler
B .
ENDP
ALIGN
就死掉了,不明白怎么会进入OTG的中断,是不是还有地方需要修改啊,使用UART1就没有问题,弄了一天了也没发现问题,哪位使用过UART2,可以发个程序看看吗,多谢了 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|