OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5196|回复: 2

我的学习笔记

[复制链接]

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2015-11-3
在线时间
22 小时
发表于 2016-3-9 20:52:15 | 显示全部楼层 |阅读模式
本帖最后由 微信扫一扫 于 2016-3-10 23:02 编辑

一、按键输入上下拉模式设置
         在按键学习里,如果没有按下的时候引脚为高电平,设为上拉输入,否则设置为下拉输入。
         输出端接上拉电阻,以提高输出高电平的值。
         芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。

二、中断分组
0        111        0:4        0位抢占优先级,4位响应优先级
1        110        1:3        1位抢占优先级,3位响应优先级
2        101        2:2        2位抢占优先级,2位响应优先级
3        100        3:1        3位抢占优先级,1位响应优先级
4        011        4:0        4位抢占优先级,0位响应优先级

中断分组函数在misc.c里面。
编写NVIC_Init()函数时,通道channel的选择参数可在stm32f10x.h这个头文件里面找到。
中断服务函数在启动文件里面(CORE文件夹里面)比如串口的中断服务函数为USART1_IRQHandler();

串口中断转台相关函数可以在stm32f10x_usart.h这个头文件里面获得。
读取串口数据函数USART_ReceiveData();

要注意的一点是:库函数编译文件模板里的SYSTEM文件夹里面的usart.c包含中断服务函数,所以在写中断服务函数后要删除该文件

三串口通信

串口号        RXD        TXD
1                PA10        PA9
2                PA3        PA2
3                PB11        PB10
4                PC11        PC10
5                PD2        PC12

1、波特率的设置

PCLK1用于USART2、3、4、5   
PCLK2用于USART1

2、BRR寄存器的设置:
DIV_fraction=16*USARTDIV的小数部分(转换成16进制)
DIV_mantissa=USARTDIV的整数部分(转换成16进制)

3、串口操作相关库函数
void USART_Init(); //串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能
void USART_Cmd();//使能串口
void USART_ITConfig();//使能相关中断

void USART_SendData();//发送数据到串口,DR
uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据

FlagStatus USART_GetFlagStatus();//获取状态标志位
void USART_ClearFlag();//清除状态标志位
ITStatus USART_GetITStatus();//获取中断状态标志位
void USART_ClearITPendingBit();//清除中断状态标志位

4、串口配置的过程
         1串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();

            2串口复位:USART_DeInit(); 这一步不是必须的

             3GPIO端口模式设置:GPIO_Init(); 模式设置为GPIO_Mode_AF_PP(查表,如下)

                  4串口参数初始化:USART_Init();

                     5开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)
               NVIC_Init();
               USART_ITConfig();

                          ⑥使能串口:USART_Cmd();

                                    ⑦编写中断处理函数:USARTx_IRQHandler();

                                             ⑧串口数据收发:
                                                    void USART_SendData();//发送数据到串口,DR
                                                    uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据

                                                ⑨串口传输状态获取:
                            FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
                              void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);

6、IO口模式设置
    表21 USART
USART引脚                 配置                     GPIO配置
USARTx_TX           全双工模式                    推挽复用输出
                    半双工同步模式                推挽复用输出
USARTx_RX           全双工模式                    浮空输入或带上拉输入
                    
半双工同步模式                未用,可作为通用I/O

USARTx_CK           同步模式                      推挽复用输出
USARTx_RTS          硬件流量控制                  推挽复用输出
USARTx_CTS          硬件流量控制                  浮空输入或带上拉输入


7、外部中断

ZET6有112个IO口,有16个中断线,每个IO口可以映射7个IO口,但是每条中断线每次只能映射一个IO口

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2016-3-9 21:56:09 | 显示全部楼层
最好放在一个帖子里面.
回复 支持 反对

使用道具 举报

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2015-11-3
在线时间
22 小时
 楼主| 发表于 2016-3-9 22:52:17 | 显示全部楼层
正点原子 发表于 2016-3-9 21:56
最好放在一个帖子里面.

嗯好的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 06:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表