7.基于STM32C8T6的四旋翼无人机的飞控制作----实践操作2,AD电路板绘制-原理图库绘制

原理图库和封装库准备,建立对应关系

Altium上绘制电路板有三种库,还有一种是集成库,不予以介绍;原理图库和封装库都可以直接用现成的库直接添加库,也可以完全自己绘制,也可以自己绘制其中一部分,另一部分直接拷贝别的库里面的元件

原理图库schematic

 

 

 

 

 

 左侧界面为这个库文件里的器件列表,在别的原理图库里面复制了可以在这里右键paste粘贴在这

左下角为工程页面和库页面的切换按钮,

右下角的System可以调出各种界面列表

SCH可以调出原理图库列表,具体学习这个可以自己点点试试

 

点击左侧的Add即为添加一个新的元件,可以自己改下名字,尽量标准化,小铅笔选项里面的方框是画一个简单的外框,最右下角的那个选项是放置引脚,最简单的就是画个方框,画几个引脚就能代表一个元器件,具体原理图库绘制详细步骤链接:https://pan.baidu.com/s/1zvLakz4mtQsPCVoINImbUA 
提取码:0bcw 
复制这段内容后打开百度网盘手机App,操作更方便哦

好的,以下是基于STM32C8T6和MQ-2烟雾传感器的代码: ```c #include "stm32f10x.h" #include "stdio.h" #define USARTz USART1 #define BAUD_RATE 9600 void USART_Config(void) { USART_InitTypeDef USART_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = BAUD_RATE; 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_Tx | USART_Mode_Rx; USART_Init(USARTz, &USART_InitStructure); USART_Cmd(USARTz, ENABLE); } void USART_PutChar(char c) { while (USART_GetFlagStatus(USARTz, USART_FLAG_TXE) == RESET); USART_SendData(USARTz, c); } void USART_PutString(char *s) { while (*s) { USART_PutChar(*s++); } } void ADC_Config(void) { ADC_InitTypeDef ADC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure); ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); ADC_Cmd(ADC1, ENABLE); ADC_ResetCalibration(ADC1); while(ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1); while(ADC_GetCalibrationStatus(ADC1)); } int main(void) { ADC_Config(); USART_Config(); while (1) { ADC_SoftwareStartConvCmd(ADC1, ENABLE); while (!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)); uint16_t value = ADC_GetConversionValue(ADC1); char buffer[100]; sprintf(buffer, "Smoke value: %d\n", value); USART_PutString(buffer); delay_ms(1000); } } void delay_ms(uint32_t ms) { ms *= 1000; while (ms--) { __NOP(); } } ``` 请注意,在这个示例代码中,我使用了USART1和PA9 / PA10引脚作为串口通信的接口。您需要根据您的实际硬件配置对代码进行一些调整。 此外,这个示例代码仅仅是一个简单的演示程序,只有烟雾传感器的输出值会被读取并通过串口发送。如果您需要更复杂的功能,例如根据烟雾传感器的输出值控制其他设备或执行其他操作,您需要进行更多的编程工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值