12.12

今天上午老师讲了UART通用异步串行通信带多线程

 引脚:

 UART(1) : (TX, RX) = (X9, X10) = (PB6, PB7) 连接 X9和X10两个引脚,自环测试。

 pyb.UART类:

 pyb.UART(bus, ...)       UART.init(baudrate, bits=8, parity=None, stop=1, *, timeout=1000, flow=0, timeout_char=0, read_buf_len=64)

 UART.deinit()      UART.any() # 返回缓冲区中接收的字符数

下午用keil做了小灯闪亮的程序

#define RCC_BASE 0X40023800

#define GPINH_BASE 0x40021c00

#define RCC_AHB1ENR *(unsigned int *)(RCC_BASE+0X30)

#define GPIOH_MODER *(unsigned int *)(GPINH_BASE+0X00)

#define GPIOH_OTYPER *(unsigned int *)(GPINH_BASE+0X04)

#define GPIOH_OSPEEDR *(unsigned int *)(GPINH_BASE+0X08)

#define GPIOH_PUPDR *(unsigned int *)(GPINH_BASE+0X0C)

#define GPIOH_ODR *(unsigned int *)(GPINH_BASE+0X14)

void SystemInit(void){

}

void ccc()

{

RCC_AHB1ENR |=0X80;

GPIOH_MODER |=0x100000;

GPIOH_OTYPER |=0x00;

GPIOH_OSPEEDR =0x00;

GPIOH_PUPDR |=0x100000;

}

void delay(int n)

{

int i,j;

for(i=0;i<n;i++)

for(j=0;j<1200;j++);

int main(void)

{

ccc();

while (1)

{

GPIOH_ODR=0x00;

delay(1000);

GPIOH_ODR=0x400;

delay(1000);

}

}

1.配置时钟(所以外设使用前都需要使能相应时钟)2.外设初始化(根据芯片手册)3.编程

操作寄存器三步

1.通过芯片手册,找到要操作的外设寄存器。找到相应寄存器组的

基地址、偏移量、需操作位、以及要赋的值

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • MDK 直接操作寄存器 编程三步 1.配置时钟(所以外设使用前都需要使能相应时钟) 2.外设初始化(根据芯片手册)...
    李响lx阅读 1,248评论 0 0
  • 今天上午学习了DA转换和UART通信。DA转换的性能指标,da转换器是将数字量转换为模拟量的电路,da转换器的性...
    黄晓雪i阅读 728评论 1 0
  • 今天上午学习了Uart串行异步通信 UART.any() # 返回缓冲区中接收的字符数 UART.read([nb...
    陶雪婷a阅读 1,657评论 0 0
  • 丹尼斯*里奇C语言的优缺点优点:简单,使用广泛...缺点: 不严谨...一:C基本语法1.C的引入#include...
    彳亍的心阅读 1,235评论 2 0
  • 终于没控制住,母子大战又上演了…… 下班回到家看到他躺在沙发上,手里拿着遥控器,吹着空调,看着电视,那...
    胥子衡妈妈阅读 721评论 0 1