推荐阅读最新更新时间:2024-11-12 18:55
STM8 PIN setting(output)
今日在设置引脚输出的时候,本想设置为open-drain输出,然后对其输出高低。但是发现无法输出高(初始化为开漏低电平),始终为低。后来改为push-pull 输出,就能输出高低了。真有意思,转到SPEC查看发现输出模式中的开漏输出是模拟的,不是真的开漏。 所以对引脚设置输出模式时,欲有电平变化的输出,就要设置为推挽输出模式。 iframe id="iframe_0.816510149743408" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22ht
[单片机]
u-boot移植总结(二)LED点灯调试 和 u-boot加载地址
(一)LED点灯调试 FL2440电路总共有4个LED0,LED1,LED2,LED3,分别接到板子GPB5,GPB6,GPB8,GPB10引脚。通过设置三个寄存器GPBCON(0x56000010),GPBDAT(0x56000014),GPBUP(0x56000018),控制GPB 引脚可控LED的亮灭。 控制LED亮灭有三步: 1,设置GPB5,GPB6,GPB8,GPB10为输出工作方式,即GPBCON = 01 GPBCON = 01,GPBCON = 01,GPBCON = 01 2,GPBUP置0000 0101 0110 0000 即GPB5,GPB6,GPB8,GPB10皆禁止使能上拉 3,设置GPBD
[单片机]
PIC12F615 电平中断调试注意
昨天调试电平中断,想实现GP1按下,GP4上的LED灯状态改变。程序按步就班,GP1启用弱上拉,再接按钮到地线。可是接PICKit3上调试时,PCB上的LED灯就是不灭。一直以为是代码的问题,后来才发现,是PICKit3供电不足。接上5V电后就正常了。调试时怕麻烦,GP1可以接个1K~4.7K的电阻上拉也能正常使用。 相关程序代码如下: unsigned char GPtemp;//电平中断读取用 void DebounceDelay(unsigned char us) { while(us--); } void InitGPINT(void) //电平变化中断 查看Datasheet 44页 { nGP
[单片机]
w806调试的问题
调试串口波特率修改,串口不能快速打印导致不能下载程序 freertos加i2c加多个4串口程序, 控制电机两个串口, 读取aoa一个串口, 和pc程序交互一个串口, 与pc交互串口的作用,把计算出来的aoa和电机转速发给pc验证是否计算正确用于调试,接受电机控制命令控制电机转速,,需要对比aoa计算出来的数据,电机转速计算,和电机控制是否计算正确
[单片机]
STM8单片机莫名进入外部中断的原因
如题! 这两天在做一个项目,用的是STM8L152的单片机,调试的时候一直出现一个问题,就是每次都在一个地方停住了,用仿真器仿真调试的时候一直会死在一个地方,后来发现产生了莫名的中断。 具体是这样的,我使用了IO口模拟I2C通信,一开始把IO口初始化为输出用了以下语句: GPIO_Init(GPIOC, GPIO_Pin_1, GPIO_Mode_Out_OD_HiZ_Fast);//SCL引脚置为输出 GPIO_Init(GPIOC, GPIO_Pin_0, GPIO_Mode_Out_OD_HiZ_Fast);//SDA引脚置为输出 然后模拟I2C的时候需要把SDA引脚时常设置为输出,时常设置为输入,
[单片机]
STM8单片机的时钟系统
一、安全系统 如果启动,当MCU的主时钟的外部时钟源的时候,外部时钟源突然损坏,断开或者是因为其他原因而失效,则自动切换为辅助时钟源HSI/8,而且系统将一直使用辅助时钟源,直至MCU再次被复位, 设置时钟安全系统寄存器CLK_CSSR中的CSSEN位,可使能时钟安全系统。为安全起见,CSS一旦使能就不能被关闭,直到下一次复位。 二、Stm8S的时钟有三种: 1,1-24M高速外部晶体振荡器(HSE) 2,最大24M高速外部时钟信号(HSE user-ext) 3,16M高速内部RC振荡器(HSI) 4,128KHz低俗内部RC(LSI) 三、时钟切换 时钟切换涉及到的寄存器: 1,主时钟切
[单片机]
STM8的GPIO输出实验-点亮LED(软件延时)
使用ST三合一体验套件中的STM8S体验系统板。 1、让板上的三个LED点亮。 试验程序如下: #include STM8S105C_S.h void GPIO_Init(void) { PD_DDR|=0x0D;//PD0、PD2、PD3为输出,其余保持原功能 PD_CR1|=0x0D;//对应位设置为推挽输出 //PD_CR1&=0xF2;//对应位设置为模拟开漏输出(不是真正开漏) } main() { GPIO_Init(); while (1) { PD_ODR=0x0d;//PD0、PD2、PD3为输出1,LED亮 } } 实验效果图如下: 如果使用开漏输出,则不能使LED点亮。
[单片机]
STM32F4入手调试USART,ADC-DMA
在F4-Discovery上调试串口,板上无串口接口芯片,需外接电平转换芯片和串口接口,通过插针引线连接两块电路板,板上3.3V供电180mA不足以支持MAX3232工作,故用usb提供的+5V来为其供电。STM32F405xx/STM32F407xx手册里里写道USART1的Pin map: Tx-PA9;RX-PA10。参考IAP的示例,昨天搞了一晚上无论如何都没有输出,很是奇怪。一直以为初始化不对。今天早晨发现手册Page56中Table7. Alternate function mapping中USART1_TX/USART1_RX映射到PB6/PB7。然后做了如下的初始化,串口的引脚跳到PB6、PB7,果然有输出。那么既然
[单片机]