[STM8] 谁有STM32F4串口收发的例子?

[复制链接]
6137|8
 楼主| firecow 发表于 2013-1-2 10:54 | 显示全部楼层 |阅读模式
官方只有个发的。。。看不懂那个中断的收发的例子。。我只想和上位机收发通讯。
Eric2013 发表于 2013-1-2 13:00 | 显示全部楼层
STM32F4实验五:5个串口FIFO + 支持RS485
http://bbs.armfly.com/read.php?tid=533
 楼主| firecow 发表于 2013-1-2 15:27 | 显示全部楼层
您这个例程只能看到是串口发出的FIFO,读取的话怎写法?
Eric2013 发表于 2013-1-2 19:42 | 显示全部楼层
firecow 发表于 2013-1-2 15:27
您这个例程只能看到是串口发出的FIFO,读取的话怎写法?

把代码好好研究下,就会了,只是没有给例子。要是不会用的话,
从这里下载 Ex014
http://bbs.armfly.com/read.php?tid=3
 楼主| firecow 发表于 2013-1-3 15:28 | 显示全部楼层
研究了一天一夜,还是搞不定。我的板子PC10,PC11是串口。怎改都用不上。
xiaofeixia123 发表于 2013-1-6 15:05 | 显示全部楼层
我用的就是407,我把我的串口设置和中断函数给你啊,你自己研究研究啊
void _Uart_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        USART_ClockInitTypeDef USART_ClockInitStruct;

        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
        GPIO_PinAFConfig(GPIOC, GPIO_PinSource10, GPIO_AF_USART2);                                          
        GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_USART2);               
       
        GPIO_StructInit(&GPIO_InitStructure);      

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;     
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOD,&GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;     
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOD,&GPIO_InitStructure);

        USART_StructInit(&USART_InitStructure);
        USART_InitStructure.USART_BaudRate =115200;
        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;
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
        USART_Init(USART2, &USART_InitStructure);
        USART_ClockStructInit(&USART_ClockInitStruct);   
        USART_ClockInit(USART2, &USART_ClockInitStruct);

        USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);   

        USART_Cmd(USART2, ENABLE);
}

void _Nvic_Init(void)
{
        NVIC_InitTypeDef NVIC_InitStructure;
        NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);  
}
void USART2_IRQHandler(void)
{
if(USART_GetITStatus(USART2, USART_IT_RXNE)!=RESET){
           USART_ClearITPendingBit(USART2, USART_IT_RXNE);
            tmp=USART_ReceiveData(USART2);
            USART_SendData(USART2,tmp);
}
shaomingxin1985 发表于 2013-6-26 15:36 | 显示全部楼层
楼上的很给力,提供的中断函数是对的!已验证,严重谢谢!
cjhk 发表于 2013-6-26 20:13 | 显示全部楼层
呵呵    问题解决了就好    楼主    顶一个    不错哦
zyh1042657199 发表于 2014-9-30 16:18 | 显示全部楼层
楼主解决了,可以给我发个工程文件参考下吗?我的一直进不了中断,1042657199@qq.com,谢谢楼主了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部