打印
[STM8]

谁有STM32F4串口收发的例子?

[复制链接]
5242|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

使用特权

评论回复
5
firecow|  楼主 | 2013-1-3 15:28 | 只看该作者
研究了一天一夜,还是搞不定。我的板子PC10,PC11是串口。怎改都用不上。

使用特权

评论回复
6
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);
}

使用特权

评论回复
7
shaomingxin1985| | 2013-6-26 15:36 | 只看该作者
楼上的很给力,提供的中断函数是对的!已验证,严重谢谢!

使用特权

评论回复
8
cjhk| | 2013-6-26 20:13 | 只看该作者
呵呵    问题解决了就好    楼主    顶一个    不错哦

使用特权

评论回复
9
zyh1042657199| | 2014-9-30 16:18 | 只看该作者
楼主解决了,可以给我发个工程文件参考下吗?我的一直进不了中断,1042657199@qq.com,谢谢楼主了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

14

帖子

0

粉丝