一  回忆昨天的内容

串行通信  
115200
8N1

串行通信与并行通信的区别

USART 
同步和异步

时序

usart1_send_byte
while(*buf)
{
    usart1_send_byte    ---->usart1_send_data
}
usart1_recv_byte

二  中断
    目标:把之前检测按键功能由轮询的方式改为中断
    
    2.0  中断控制器
        当使用中断时,首先了解中断控制器
        NVIC  可嵌套的向量中断控制器
        VIC     向量中断控制器
        GIC     通用中断控制器     ----》  高端板子
        
        一般情况下MCU使用NVIC和VIC
        
    2.1  在STM32F103RBT6中的中断
        NVIC 和ARM-CORTEX-M3紧密相连
        NVIC会处理两个事情
        1)NVIC会为每一个连接到NVIC上的中断源分配一个中断号
            中断号的顺序一定和中断向量(异常处理函数)保持一致
        2)处理优先级的问题
            本身ARM提供8bit的空间来解决256个优先级,但是ST公司只用了4bit 用于处理16个优先级
        
    2.2  通过手册了解EXTI中断
        打开《stm32f10x中文参考手册》 P91
        8.1.2章节中所指示的是中断和异常向量表
        编号越小的(中断),优先级越高
        
        表36中所指示的内容是不可以修改的
        首先关注EXTI,它表示外部中断,可以配置成19个中断事件源
        16个用来处理外部中断,剩余的3个用来处理其他中断

GPIO管脚可以触发中断,但是需要借助EXTI,一共有19个
        
        PA0 PB0 PC0 PD0  ...都可以触发EXTI0
        ...
        PA15 PB15 PC15 PD15  ...都可以触发EXTI15

结论:每一个GPIOx都可以触发EXTIx
        
        注意:
            1)NVIC和EXTI的区别
                NVIC 控制器
                EXTI  外部中断源

2)编号的问题
                中断有中断号
                       中断号和异常向量表中的顺序有关     
                外部中断也有外部中断号
                       EXTI的中断号和GPIO的管脚相关
            
            3)外部中断 EXTI0  对应的中断编号 0...
                 外部中断 EXTI9~5 对应的中断编号是同一个
                 有些外部中断独占一个中断号,有些外部中断共享一个中断号
                 也就是说,异常向量表中的第6函数是处理外部中断0
                 由于KEY0 对应的PC9   KEY1   对应的是PC8
                 且EXTI9~5对应的中断处理函数是同一个,所以要在中断处理函数中进行判断
    
    2.3 了解外部中断配置寄存器
        EXTIx[3:0]  配置成不同的值的时候,选择不同的管脚,它属于 AFIO_EXTICRx。
        所以打开时钟的时候,需要将GPIOA,GPIOC,EXTI,AFIO的时钟打开

2.4  驱动EXTI(外部中断)
        KEY0      PC9      EXTI9
        KEY1      PC8      EXTI8
        KEY2      PA0      EXTI0
        KEY0   和  KEY1 在没有按下的时候,呈现高电平。
        KEY2 逻辑和上述相反。
    
    用中断的方式实现USART1接收字符串

stm32f103rbt6_6相关推荐

最新文章

  1. (C++)A+B 输入输出练习V 输入的第一行是一个正数N,表示后面有N行。每一行的第一个数是M,表示本行后面还有M个数。
  2. Windows Mobile 技术开发黄金周系列课程
  3. MySQL从入门到精通50讲(八)-MySQL排序分组
  4. CCNA--OSI、TCP/IP
  5. 如何在一个站点里使用两个Web.sitemap 或是多个Web.sitemap?
  6. 第二阶段站立会议08
  7. 开创手机影像全新时代的微云台要来了!vivo X系列夏季新品发布会今晚高能来袭...
  8. dev控件调用html页面,Chrome开发工具 扩展 DevTools
  9. LeetCode(897)——递增顺序查找树(JavaScript)
  10. 初学者应该如何开启自己的编程生涯?,nginx架构图
  11. webpack教程(二)——webpack.config.js文件
  12. 图像语义分割(6)-RefineNet:用于高分辨率图像语义分割的带有恒等映射的多路精细网络
  13. python numpy官方文档_[ Numpy中文文档 ] 介绍 - pytorch中文网
  14. 无线烟感在文物古建筑的安全防火应用
  15. linux c实现通用hash表
  16. 电子计算机系统集成费用,信息服务资费标准 计算机信息系统集成类.pdf
  17. 一元三次方程重根判别式_一元三次方程的求根公式
  18. 1M宽带50M宽带100M宽带最大下载速度
  19. 微信视频号头像怎么换?怎么设置?必看!5个思路帮你快速敲定头像
  20. 无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装

热门文章

  1. not exists/exists的用法
  2. XNA游戏:手势触控
  3. 别等到使用电化学工作站时才来了解这些
  4. 消灭EMC的三大利器:电容器/电感/磁珠
  5. Cocos2dx WebSocket的使用
  6. 解决第一个Android工程sync失败失败90%问题的方法(sync失败、unresolved ...、not found、。。。)
  7. 广东专插本计算机专业学校有哪些,2020年广东专插本院校有哪些?
  8. Thread Environment Block(TEB)
  9. WS PC biotin是水溶性的、azide-反应性的可洗性生物素探针WS PC DBCO-Biotin
  10. 1.1 什么是PowerVM(IBM小型机)虚拟化技术